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

Как удалить index.php из URL?

Все мои URL-адреса моей установки Magento требуют в них index.php, например:

http://example.com/index.php/admin/
http://example.com/index.php/customer/account/login/

Проблема в том, что система по умолчанию ссылается на такие URL, как

http://example.com/admin/
http://example.com/customer/account/login/

Который выглядит в любом случае красивее. Я предполагаю, что это проблема с переписыванием в .htaccess, но, как возиться с тем, что в прошлом дало мне 500, я хотел бы сначала спросить вас, ребята.

Изменение настроек SEO, сброс кеша конфигурации и переиндексирование URL-адресов не работало как предлагалось здесь.

4b9b3361

Ответ 1

Это может быть старым, но я могу написать то, что я узнал. Так или иначе, я сделал это таким образом.

---------- >

Перед запуском убедитесь, что модуль перезаписывания Apache включен, а затем выполните следующие действия.

1) Войдите в свою область администрирования Magento, затем перейдите в Системa > Конфигурация > Веб.

2) Перейдите на вкладку Необеспеченные и Безопасные. Убедитесь, что параметры Необеспеченные и Secure - базового URL имеют ваше доменное имя внутри него и не оставляют переднюю косую черту в конце URL. Пример: http://www.yourdomain.co.uk/

3) Пока на странице Веб перейдите на вкладку Поисковая оптимизация и выберите ДА под Использовать веб-сервер Переопределяет.

4) Перейдите на вкладку Безопасная еще раз (если она еще не указана) и выберите Да на Использовать безопасные URL-адреса в интерфейсе. > .

5) Теперь перейдите в корень вашей папки веб-сайта Magento и используйте этот код для своего .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Сохраните .htaccess и замените исходный файл. (ПОЖАЛУЙСТА, УБЕДИТЕСЬ, ЧТОБЫ РЕЗЕРВИТЬ ВАШЕГО ОРИГИНАЛЬНОГО ФАЙЛА .htaccess ПЕРЕД СООБЩЕНИЕМ С ЭТОЙ!!!)

6) Теперь перейдите в Системa > Управление кэшем и выберите все поля и убедитесь, что раскрывающийся список Действия установлен на Обновить, затем отправьте, (Это, конечно, обновит кеш.)

---------- >

Если это не сработало, выполните следующие дополнительные действия.

7) Перейдите в раздел Системa > Конфигурация > веб. На этот раз найдите Текущая область конфигурации и выберите свой веб-сайт в раскрывающемся меню. (Это, конечно, установлено в Default Config)

8) Убедитесь, что поля Необеспеченные и Защищенные содержат тот же домен, что и предыдущий файл конфигурации по умолчанию.

9) Перейдите на вкладку Оптимизация поисковых систем и выберите Да под разделом Использовать веб-сервер для перезаписи.

10) Как только URL-адреса будут одинаковыми, а перезапись будет включена, сохраните эту страницу, затем вернитесь и убедитесь, что все они отмечены как по умолчанию, а затем сохраните снова, если необходимо.

11) Повторите шаг 6.

Теперь ваша проблема index.php должна быть исправлена, и все должно быть хорошо!!!

Надеюсь, это поможет, и удачи.

Ответ 2

Следуйте приведенным ниже инструкциям, которые вам помогут.

Шаг 1. Перейдите в корневую папку вашего сайта, и вы можете найти там файл .htaccess. Откройте его с помощью текстового редактора и найдите строку #RewriteBase /magento/. Просто замените его на #RewriteBase / вытащите только "magento/"

Шаг 2: Затем перейдите на панель администратора и включите Rewrites (установите да для использования веб-сервера Rewrites). Вы можете найти его в System- > Configuration- > Web- > Search Engine Optimization.

Шаг 3: Затем перейдите на страницу управления кешем (управление системным кешем) и обновите кеш и обновите, чтобы проверить сайт.

Ответ 3

Вы должны включить mod_rewrite в apache, чтобы сделать чистые URL-адреса для работы

Если mod_rewrite не находится в phpinfo, вы должны установить его

sudo a2enmod rewrite
sudo apache2ctl -l

Вам нужно заменить появление AllowOverride none на AllowOverride all (в/etc/apache2/sites-enabled/000 по умолчанию)

Перезапустить Apache

sudo service apache2 restart

В Magentos admin перейдите к System > Configuration > Web > search engine Optimization и измените "Use Web Server Rewrites" на "Да"

Ответ 4

Как насчет этого в вашем .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Ответ 5

Привет, я опаздываю на вечеринку.. просто хотел указать, что инструкции из http://davidtsadler.com/archives/2012/06/03/how-to-install-magento-on-ubuntu/ были действительно полезны.

У меня был сервер Ubuntu с Apache, MySql и Php, поэтому я подумал, что могу перейти к заголовку Создание каталога, из которого Magento будет обслуживаться от, и я достиг той же проблемы, что и OP, т.е. у меня был "index.php", необходимый во всех URL-адресах (или я бы не нашел 404). Затем я вернулся к установке и настройке HTTP-сервера Apache, и после перезапуска apache он отлично работает.

Для справки мне не хватало:

sudo bash -c "cat >> /etc/apache2/conf.d/servername.conf <<EOF
ServerName localhost
EOF"

... и

sudo a2enmod rewrite
sudo service apache2 restart

Надеюсь, что это поможет

Ответ 6

Я пробовал все на посту, но ничего не сработало. Затем я изменил фрагмент .htaccess, который ErJab поставил для чтения:

RewriteRule ^(.*)$ 'folder_name'/index.php/$1 [L]

Вышеприведенная строка исправила это для меня. где * folder_name * - корневая папка magento.

Надеюсь, это поможет!

Ответ 7

Если другие решения не сработают для вас, попробуйте следующее:

Шаг 1: (если ваша установка находится в webroot)

Заменить

    #RewriteBase /magento/

с

    RewriteBase /

Шаг 2:

Добавьте следующие строки (включительно исключайте admin, потому что backend нуждается в index.php изнутри)

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.yourdomain.com/$1 [R=301,L]
RewriteRule ^index.php/(admin|user)($|/) - [L]
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

сразу после

RewriteRule .* index.php [L] 

Это работает для меня

Если он все еще не работает, дважды проверьте конфигурацию Magento: System- > Configuration- > Web- > Поисковая оптимизация. Необходимо включить перезапись.

Ответ 8

В основном Если вы используете систему на базе Linux Как Ubuntu, и это предлагается только для пользователя localhost, а не для сервера.

Следуйте всем шагам, указанным в предыдущих ответах. +

Проверьте конфигурацию Apache. (AllowOverride All) Если значение AllowOverride равно none, измените его на All и снова перезапустите apache.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Сообщите мне, помог ли этот шаг кому-либо. Поскольку это может сэкономить ваше время, если вы найдете его раньше.

введите описание изображения здесь

Я добавляю точные строки из моего файла htaccess в localhost. для вашей справки

Вокруг строки номер 110

<IfModule mod_rewrite.c>

############################################
## enable rewrites

Options +FollowSymLinks
RewriteEngine on

############################################
## you can put here your magento root folder
## path relative to web root

#RewriteBase /

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Изображения для некоторых пользователей, которые легко понимают изображение из текста:

введите описание изображения здесь