Мой magento установлен в Ubuntu Linux в /var/www/magento. Этот вопрос выглядит как некоторые из вопросов в архивах а на самом деле несколько другое. Когда я установил Magento на Ubuntu Linux Я включил мод Apache _, перезаписывающий URL-адрес.
Когда я захожу на http ://localhost/magento мой сервер переписывает URL как http ://localhost/magento/ и отображает страницу. Затем я нажимаю на одну из ссылок в панели навигации,скажем, это элемент панели навигации -"foo". Затем magento переносит меня на:
http :// локальный/magento/foo.html
который отображает страницу Apache «Не найдено».
Мне нужно изменить URL-адрес на ----->
. http :// локальный/magento/index.php/foo.html
для отображения страницы.
Как будто что-то не так в моем моде _rewrite.
Спасибо,
Джон Гош
КОНФИГУРАЦИЯ :Система -> Конфигурация -> (Общие -> )Интернет:
Использовать перезапись веб-сервера :ДА
Базовый URL :http :// localhost/magento
Если я установлю «Пользовательский веб-сервер перезаписывает :» на «НЕТ», тогда ссылки с моей главной страницы работает нормально, но см. страницу http :// локальный/magento/index.php/foo.html который отображает правильную страницу, но тогда как веб-сайт работает, мне не нравится URL. я хотел бы, чтобы он был http :// localhost/magento/foo.html без бита index.php, так как это, вероятно, также быть более дружелюбным к SEO -.
Спасибо,
Джон Гош
Обновление :Я попытался раскомментировать свой искусственный IP-адрес 127.0.1.1. который ubuntu поместил в /etc/hosts и разместил там мой настоящий IP, но не повезло. У меня все еще точно такая же проблема. И URL внутри мой браузер переписывается на http ://localhost/etc... всякий раз, когда я введите 192.168.3.31, avalanche или avalanche.com внутри него. Я все еще пытаюсь понять, как решить проблему выше описано как этого не делал.
127.0.0.1 localhost
#127.0.1.1 avalanche
192.168.4.35 avalanche avalanche.com
Когда я перезапускаю Apache, я получаю:
# service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.4.35 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.4.35 for ServerName
Не знаю, как исправить исходную проблему. Я тестирую на локальном сервере.
Я даже пробовал это решение, а затем перезапускал apache2, но не повезло!
Как удалить index.php из URL-адресов?
так размещая:
RewriteEngine On
RewriteBase /mymagento/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
не работает, даже с RewriteBase/ не работает.
ХОРОШО,наконец мне удалось решить проблему. Файл /etc/apache2/sites -enabled/000 -default имеет следующий набор директив для всех каталогов определено в этом файле:
AllowOverride None
Например, для /var/www, который является корневым документом по умолчанию. установленный в системе Ubuntu 12.04 LTS Linux, этот файл содержит
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
что, насколько я понимаю, означает, что файлы.htaccess, найденные в этот каталог и все его подкаталоги не будут проанализированы. Для устранения проблемы достаточно установить:
AllowOverride All
это означает, что вы сможете переопределить директивы конфигурации сервера находится в /etc/apache2/apache2.conf (или /etc/apache2/httpd.conf, который включены в него ).
Одной из причин, по которой AllowOverride по умолчанию установлено значение None, может быть то, что это замедляет работу сервера, а другое — из соображений безопасности. Этот директива должна быть установлена внутри тега, а последние могут преобладать над первыми. Другая причина, по которой это не по умолчанию установлено, что необходимо рекурсивно анализировать.htaccess на сайте каждый раз, когда файл в пути к каталогу загружается может замедлить работу системы и, таким образом,.htaccess в /etc/apache2/httpd.conf, когда рекомендуется, так как это может вызвать увеличение скорости.
Итак, место
Options Indexes FollowSymLinks MultiViews
#AllowOverride None
AllowOverride All
Order allow,deny
allow from all
внутри /etc/apache2/sites -включено/000 -по умолчанию
и запустите :перезапуск службы apache2
это решение.