Перенаправление даже абсолютного URL с режимом перезаписи - PullRequest
0 голосов
/ 02 января 2012

я пытаюсь реализовать красивый URL.Все, что я написал на PHP, и это работает правильно.Мне нужно обрабатывать каждый запрос по index.php.

Например, website.com/page/search/question/dogs будет обрабатываться по индексу.НО website.com/templates/header.tpl начнет загружать файл.

Я хочу обработать index.php даже адрес другого файла.

В .htaccess у меня есть.

RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  

RewriteRule ^.*$ ./index.php  

Как я могу передать даже абсолютный URL в файл по index.php?

Ответы [ 2 ]

0 голосов
/ 02 января 2012

Если вы хотите перезаписать URL-адреса для файлов, которые уже существуют на сервере, вам необходимо удалить проверку !-F (не файл) и !-D (не каталог). В противном случае вы установили неправильные RewriteCond ионы для вашего RewriteRule.

Однако есть одно предупреждение: вы не хотите переписывать для index.php самого себя, иначе это приведет к бесконечному циклу перезаписи.

RewriteEngine On  

RewriteCond %{REQUEST_FILENAME} !=^./index\.php$
RewriteRule ^.*$ ./index.php [L]

См. Также RewriteCond Директива и документы .

0 голосов
/ 02 января 2012

rmove условия, что URL не должен быть каталогом или именем файла: RewriteCond% {SCRIPT_FILENAME}! -D
RewriteCond% {SCRIPT_FILENAME}! -F

...