Вопрос

Мне интересно, можно ли удалить index.php с URL? В основном на некоторых страницах на сайте у меня есть эта структура,

http://www.domain.com/index.php/members/register., но другие страницы у меня есть структуры URL, как это, http://www.domain.com/category/products/id/5., Я хочу знать, возможно, именно HTACCESS удалить index.php и любые приписываемые скольжения при необходимости? Как бы я пошел по этому поводу?

Это было полезно?

Решение

Да, ты можешь. С этим правилом любой запрошенный /index.php будет удален:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.php[/?\ ]
RewriteRule ^index\.php(/(.*))?$ /$2 [L,R=301]

Но вы должны лучше использовать правильные URL-адреса прямо с самого начала, чтобы приложение служила документами, ссылки которых не содержат /index.php.

Другие советы

Если вы хотите повторно перезаписать Index.php / контроллер / действие

Эта конфигурация .htaccess должна сделать трюк:

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

Эта конфигурация проверяет Apache, существует ли файл / каталог на диске или нет (то есть запрос сопоставить реальный ресурс на диске) и переписать запрос на Ваш передний контроллер если нужно.

Так http://www.domain.com/resources/image.png должен вернуть ресурс изображения. И http://www.domain.com/user/show/5 следует прозрачно переписать http://www.domain.com/index.php/user/show/5

С этой конфигурацией, Вы можете удалить все ссылки на index.php в URL-адресах приложения и оставьте переписывание на веб-сервер.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top