Intereting Posts
Simplexml получает атрибуты с пространством имен если пустое значение $ _POST присваивает значение в цикле foreach получение последнего вставленного идентификатора строки с PDO (не подходящий результат) как я могу получить многомерные значения массива, используя foreach? как увеличить значение переменной на 1 для каждой записи с помощью php mysql LOAD DATA INFILE php – динамика доступа crm 2011 с веб-сервисами Получить сегмент uri в функции индекса контроллера – Codeigniter Создайте механизм для передачи положительного целого числа и отобразите все значения серии Фибоначчи до и включите указанное значение Как решить ошибку таймаута в Laravel 5 PDO Автоматическое сглаживание при извлечении? Как сделать мою функцию сброса пароля codeiginter безопасной? Как мне зашифровать мои данные в приложении PHP? URL-адрес динамической страницы динамической страницы PHP Как я могу получить MAC и IP-адрес подключенного клиента в PHP? Не удалось создать страницу входа?

Перенаправить * .php для очистки URL-адреса

Мой htaccess не работает:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.php$ /blah/$1 [R=301,L] RewriteRule ^(.*)$ /blah/index.php/$1 [L] 

В принципе /blah/about.php следует перенаправить на / blah / about

Я использую codeigniter, поэтому последняя строка требуется для обработки URL.

Переадресация работает нормально, но я получаю внутреннюю ошибку сервера в / blah / about

** Редактировать – журнал ошибок:

Запрос превысил предел 10 внутренних переадресаций из-за вероятной ошибки конфигурации. Используйте «LimitInternalRecursion», чтобы увеличить предел, если это необходимо. Используйте «LogLevel debug», чтобы получить обратную трассировку.

Solutions Collecting From Web of "Перенаправить * .php для очистки URL-адреса"

Я думаю, вам просто нужно изменить свою последнюю строку:

 RewriteRule ^(.*)$ /blah/index.php?/$1 [L] 

У меня нет особого опыта работы с CodeIgniter, но, как правило, фреймворки хотят проталкивать все запросы через центральный контроллер (index.php), а затем анализировать URL-адрес запроса изнутри.

EDIT: просто обновил свой ответ на примере здесь: http://codeigniter.com/wiki/mod_rewrite/ , это должно быть так, как это хочет CodeIgniter.

ОБНОВЛЕНИЕ. Вероятно, вы должны дублировать RewriteConds для второго RewriteRule, они применимы только к первому:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.php$ /blah/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /blah/index.php/$1 [L] 

Спасибо @ Cryo за помощь, это исправление:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.php$ /blah/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /blah/index.php/$1 [L] 

Как насчет:

 RewriteRule ^(.*)(\.php)?$ /blah/index.php/$1 [L] 

и удалите предыдущую строку.

Также убедитесь, что /blah/about.php не существует.

 Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*)\$ $1.php [NC]