Подтвердить что ты не робот

URL-адреса Magento, кроме домашней страницы, не работают без index.php

Мой magento установлен на Ubuntu Linux под /var/www/magento. Этот вопрос выглядит как некоторые из вопросов в архивах но резко отличается. Когда я установил Magento на Ubuntu Linux я разрешил перезаписывать URL-адрес Apache mod_rewrite.

Когда я перехожу к http://localhost/magento мой сервер переписывает URL как http://localhost/magento/ и отображает страницу. Затем я нажимаю на одну из ссылок в навигационной панели, скажем, nav-bar item "foo". Тогда пурпурный принимает меня к:

http://localhost/magento/foo.html

который отображает страницу Apache "Не найден".

Мне нужно изменить URL-адрес на ----- >

http://localhost/magento/index.php/foo.html

чтобы отобразить страницу.

Как будто что-то не так в моих mod_rewrite выработках.

Спасибо,

Джон Гоше

КОНФИГУРАЦИЯ: Система → Конфигурация → (Общие → ) Веб:

Использовать веб-сервер Rewrites: YES

Базовый URL: http://localhost/magento

Если я установил "User Web Server Rewrites:" на NO, тогда ссылки с моей главной страницы работают нормально, но см. страницу http://localhost/magento/index.php/foo.html который отображает правильную страницу, но в то время как сайт работает, мне не нравится URL-адрес. я хотел бы, чтобы он был http://localhost/magento/foo.html без бита index.php, так как это также возможно быть более оптимизированным для SEO.

благодарив,

Джон Гоше


Обновление: я пробовал раскомментировать мой искусственный 127.0.1.1 IP-адрес который ubuntu поместил в /etc/hosts и разместил мой реальный IP-адрес, но не повезло. У меня все еще есть одна и та же проблема. И URL внутри мой браузер переписан на http://localhost/etc..., когда я тип 192.168.3.31, лавина или 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 fully qualified domain name, using 192.168.4.35 for ServerName
 ... waiting apache2: Could not reliably determine the server 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/apache 2/sites-enabled/000-default имеет следующее директивное множество для всех каталогов определенные в этом файле:

 AllowOverride None

Например, для /var/www, который является корнем документа по умолчанию установленный на Ubuntu 12.04 LTS Linux, этот файл содержит

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

что, насколько я понимаю, означает, что файлы .htaccess, найденные в этот каталог и все его подкаталоги не будут разбираться. Чтобы устранить проблему, достаточно установить:

AllowOverride All

означает, что вы сможете переопределить директивы конфигурации сервера найденный в файле /etc/apache 2/apache2.conf(или/etc/apache2/httpd.conf, который включены в него).

Одна из причин, по которой AllowOverride имеет значение None, по умолчанию может быть он замедляет работу сервера, а другой - по соображениям безопасности. Эта директива должна быть установлена ​​внутри тега, а последние могут переопределить первое. Другая причина, по которой это не установленным по умолчанию, заключается в том, что необходимо проанализировать .htaccess рекурсивно по всему сайту каждый раз, когда файл в пути к каталогу может замедлить работу системы и, таким образом, .htaccess в файле /etc/apache 2/httpd.conf, когда возможно, рекомендуется, так как это может привести к увеличение скорости.

Итак, место

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            #AllowOverride None
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

внутри/etc/apache2/sites-enabled/000-default

и запустите: service apache2 restart

является решением.

4b9b3361

Ответ 1

Вы пытались:

RewriteBase /magento/

а не RewriteBase/mymagento/потому что ваш URL-адрес: http://localhost/magento/

Позволяет ли ваш виртуальный хост apache перезаписывать конфигурацию, например.

<VirtualHost *:80>
...
<Directory /var/www/magento/>
    AllowOverride All
</Directory>
</VirtualHost>

Ответ 2

У вас есть соответствующий файл .htaccess в вашем корне Magento? Кроме того, у вас могут возникнуть проблемы с localhost. Он рекомендовал использовать 127.0.0.1 или сопоставить домены dev в вашем файле hosts.

Ответ 3

Включение модуля перезаписи Apache для wamp для меня.

enter image description here

Ответ 4

Go to admin url of your site. 
Suppose,http://example.com/index.php/admin/

Go to 'System' menu from navigation and click on 'Configuration'.
Under the 'General' tab in the left, click on 'Web'.
Open the 'Search Engines Optimization' section by clicking on it.
Then set 'Use Web Server Rewrites' value to 'No'

Ответ 5

В конфигурации Magento (доступной в Панели администратора Magento через Систему > Конфигурация) есть некоторые соответствующие параметры, которые определяют, как выглядит подходящий URL поисковой системы.

Web > Search Engine Optimization > Use Web Server Rewrites

Настройка, которая должна всегда включаться. Если "URL/index.php/" не будет добавлен в URL-адрес, который не является необходимым и выглядит уродливым. Чтобы включить эту опцию, вам также необходимо включить mod_rewrite Apache в вашей среде хостинга.

Catalog > Search Engine Optimizations > Product URL Suffix

Значение по умолчанию - ".html", которое будет добавлено к каждому URL-адресу продукта. Некоторые SEO-эксперты утверждают, что это необходимо для лучшего рейтинга, другие SEO-экспорт говорят, что это не так. Для нашей интеграции MageBridge с Joomla! этот параметр должен быть пустым.

Catalog > Search Engine Optimizations > Category URL Suffix

То же, что и выше, но теперь категории.

Catalog > Search Engine Optimizations > Use categories path for product URLs

Если этот параметр включен, URL-адрес продукта также будет содержать URL-адреса категории. Хотя можно утверждать, что это приводит к дублированию контента, страницы продуктов могут также выиграть от этого, потому что они становятся частью более крупной структуры.

Catalog > Search Engine Optimizations > Use Canonical Link Meta Tag For Products

Если вас действительно беспокоит дублированный контент (что не так плохо, как говорят некоторые люди), вы можете включить канонический тег, который сообщает поисковым системам, какая страница ведет, когда обнаружен дублированный контент.

Catalog > Search Engine Optimizations > Use Canonical Link Meta Tag For Categories

То же, что и выше, но для категорий.

дальнейшее чтение по вопросу http://www.yireo.com/tutorials/magento/magento-administration/664-fixing-url-rewrites-with-magento

Ответ 6

У меня была такая же проблема при переносе моего сайта в localhost. Наконец я решил это.

У меня есть ОС Windows. Поэтому я использовал WAMP-стек для моего localhost. Я потратил много времени, чтобы получить весь URL и его содержимое в моем локальном хосте, изменив файл .htaccess, изменив таблицу core_config_data в БД, но все пошло не так.

Наконец, я получил ключ для включения rewrite_module на сервере Apache. 1. Чтобы включить его, щелкните значок Wamp в панели лотка (WAMP- > Apache- > Apache modules- > и выберите rewrite_module). 2. Перезапустите Wamp Server. 3. Очистить кеш (необязательно, я думаю) - Удалить все файлы в папке var/cache

Убедитесь, что файл .htaccess в корневой папке позволяет предположить (localhost/magento/.htaccess). Если у вас его нет, вы не получите результат.

Вот оно.

Я надеюсь, что теперь вы сможете получить все остальные страницы и URL-адрес, кроме дома, а также u не получит страницу ошибок 404.

Ответ 7

Это проблема mod_rewrite. Я запускаю Ubuntu и имел ту же проблему при настройке apache и magento для миграции хранилища.

Измените /etc/apache2/sites-available/000-default.conf на

<VirtualHost ...>
...
<Directory /var/www>
    Options Indexes FollowSymLinks MultiViews   
    AllowOverride All
    Order allow,deny
    allow from all 
</Directory>

</VirtualHost>

таким образом разрешает перезаписывать для var/www на веб-сервере.

Чтобы apache обрабатывал правила перезаписи из magentos. htaccess file (s),
включение модуля перезаписи через

sudo a2enmod rewrite

и перезапуск apache через

sudo /etc/init.d/apache2 force-reload 
//(not service apache2 restart)

решил всю проблему для меня.

См. http://wiki.ubuntuusers.de/Apache/mod_rewrite и
http://wiki.ubuntuusers.de/Apache для подробного объяснения того, как правильно настроить порядок.