Я без проблем использовал приведенные ниже серверные команды в своем файле .htaccess в течение нескольких месяцев, но вчера, неожиданно, всякий раз, когда я пытался перейти с домашней страницы веб-сайта на другие страницы или пытался перемещаться по Magento Страницы настроек администратора, у меня почти пустой экран со словами «Не указан входной файл». Я заглянул в консоль браузера и обнаружил ошибку как "Не удалось загрузить ресурс: сервер ответил статусом 404 ()".
После некоторого исследования я определил, что это было вызвано командами перенаправления в файле public_html / .htaccess.
Я добавил перенаправление по настоянию Magento, чтобы конфиденциальные файлы Magento не были доступны для "общественности" для просмотра / использования. (Я никоим образом не использую хостинг или серверы GoDaddy). Я получил команды перенаправления с веб-страницы BlueHost или DreamHost.
Я пробовал добавить "?" и удаление "/" из некоторых команд, но это показывает только новую ошибку.
Я также закомментировал команды перенаправления, которые позволяют мне перемещаться по всему веб-сайту и страницам настроек администратора Magento.
Может ли кто-нибудь указать мне правильные направления для того, какие команды мне нужно использовать, чтобы перенаправления работали правильно, и руководство (-я) относительно того, что делают команды .htaccess?
Большое спасибо.
RewriteBase /public_html/pub
# Rewrites all URLs without pub in them
RewriteCond %{REQUEST_URI} !^/pub/
# Rewrites all URLs
RewriteCond %{HTTP_HOST} ^(www\.)?abc\.
# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /pub/$1 [L]
Каким-то чудом божьим мой рерайт месяцами работал нормально (новичок по незнанию). Но теперь, как раз перед тем, как начать свой бизнес в электронной коммерции, Он помог мне найти ошибки. Теперь выясним, что не так с моими таблицами MySQL.
В моем исходном коде отсутствовали некоторые важные элементы.
Ниже представлен рабочий «код», и как он должен выглядеть:
RewriteBase /public_html/pub
# Rewrites all URLs without pub in them
RewriteCond %{REQUEST_URI} !^/pub/$
# Rewrites all URLs # I originally used "abc" instead of my domain name
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /pub/$1 [L]
Вот что означают указанные выше элементы:
! = negative/don't/not
\ = escape character
(.*) appears to be a wilcard to get all URL to go to the %{HTTP_HOST} rewritten location
NC = Case insensitive, that is not case sensitive
L = Last (end of line/commands)- stop processing rules
^ = Start of the string
$ = End of the string
%{HTTP_HOST} = one of a few HTTP Headers
%{REQUEST_URI} = a kind of a special server variable that makes a request
1 appears to be shorthand for 301 which means "Moved permanently" as in rewrite these things permanently
? appears to be a URL break point, a domain name signifier, a subdirectory marker, or all of the above
Я нашел здесь чит-набор с этими и другими командами: http://www.cheatography.com/davechild/cheat-sheets/mod-rewrite
Я надеюсь, что все это поможет другим новичкам в перезаписи.
Спасибо всем.