Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Непонятка с .htaccess
 
 автор: chubakka   (25.07.2013 в 12:41)   письмо автору
 
 

Здравствуйте! может кто-нибудь поможет разобраться с данной ситуацией

при мод-рерайте на файлы с расширением .html все отлично работает

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /post.php?id=$1 [L]

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


но при изменении на на расширение .php получаю ошибку

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([^/]*)\.php$ /post.php?id=$1 [L]

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

  Ответить  
 
 автор: cheops   (25.07.2013 в 23:04)   письмо автору
 
   для: chubakka   (25.07.2013 в 12:41)
 

Зацикливается. Дело в том, что правила применяются до тех пор пока их можно применять, у вас результате имеет расширение php и к нему все снова и снова применяются правила. Первое правило должно быть более специализированным, чтобы post.php не попадало под него.

  Ответить  
 
 автор: chubakka   (27.07.2013 в 00:41)   письмо автору
 
   для: cheops   (25.07.2013 в 23:04)
 

но ведь это правило

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


исполняется без проблем...

но при добавлении этого правила

RewriteRule ^([^/]*)\.php$ /post.php?id=$1 [L]

сразу ошибка

  Ответить  
 
 автор: cheops   (27.07.2013 в 08:17)   письмо автору
 
   для: chubakka   (27.07.2013 в 00:41)
 

>но ведь это правило
Потому, что оно ищет page в начале строки, в начале index.php его нет, а второе правило ищет .php в конце строки, которое в конце index.php всегда присутствует и правило срабатывает все снова и снова.

  Ответить  
 
 автор: chubakka   (27.07.2013 в 14:48)   письмо автору
 
   для: cheops   (27.07.2013 в 08:17)
 

спасибо за разъяснения!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования