Недавно мы переместили многосайтовую среду Magento на новый выделенный сервер, однако все сайты, кроме сайта с URL-адресом администратора (не используются, кроме администратора), сообщают о страницах 404 в стиле Magento на внешнем интерфейсе.
Мы включили mod_rewrite, проверили базу данных и вручную изменили URL-адреса в PHPMyAdmin, чтобы назначить некоторые временные тестовые URL-адреса. URL-адрес, назначенный для области администратора, работает нормально, а остальные разрешаются на сервер, однако каждый внешний интерфейс по-прежнему 404. Мы пытались добавить index.php к URL-адресу, без изменений. Проверил все права доступа к файлам и папкам, все ОК. Очистил весь кеш вручную и переиндексировал из командной строки. Без изменений.
Мы проверили, что HTACCESS верен, что выглядит так. Мы даже сделали еще одну резервную копию базы данных и полного сайта и восстановили ее на другом сервере с теми же проблемами.
Мы также пытались отключить URL-адреса SEO / перезапись URL-адресов без изменений.
Журналы ошибок тоже мало что говорят, что бесполезно.
Действительно борюсь с этим сейчас, поэтому любая помощь или указатели очень ценятся. Спасибо
Ответ 1 · рейтинг 2 · Hamid Parchami
Первое решение:
Замените текущий файл .htaccess файлом .htaccess по умолчанию из Magento.
Второе решение:
#fastcgi_param MAGE_RUN_CODE default;
Если не работает, попробуйте следующее решение:
Третье решение:
Это установлено на веб-сервере Apache? Если нет, то функции .htaccess необходимо будет преобразовать в ваш вариант программного обеспечения веб-сервера.
Был ли модуль DSO для mod_rewrite установлен в Apache и разрешена ли его загрузка?
Включен ли AllowOverrides для виртуального сервера, чтобы Options +FollowSymLinks работал? Возможно, вам придется проконсультироваться с вашим хостинг-провайдером и включить его.
- Доступен ли файл Magento .htaccess в корневой папке документа?
- Включен ли механизм перезаписи в файле .htaccess?
- Правильно ли назначена RewriteBase в файле .htaccess?
Общие записи в .htaccess Magento, которые должны работать, чтобы перезапись работала, чтобы устранить необходимость в том, чтобы index.php отображался в URL-адресе.
<IfModule mod_rewrite.c>
############################################
## enable rewrites
Options +FollowSymLinks
RewriteEngine on
############################################
## you can put here your magento root folder
## path relative to web root
#RewriteBase /magento/
############################################
## workaround for HTTP authorization
## in CGI environment
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
############################################
## always send 404 on missing files in these folders
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
############################################
## never rewrite for existing files, directories and links
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
############################################
## rewrite everything else to index.php
RewriteRule .* index.php [L]
</IfModule>
Третье решение от Fiasco Labs