htaccess help, удаление строки из URL - PullRequest
0 голосов
/ 11 октября 2010

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

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

Ответы [ 2 ]

0 голосов
/ 11 октября 2010

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

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

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

0 голосов
/ 11 октября 2010

Если вы хотите глобально переписать index.php / controller / action

Эта конфигурация .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-адресах вашего приложения и оставить перезапись на веб-сервере.

...