Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите с ЧПУ
Форумы портала PHP.SU » » Вопросы новичков » Помогите с ЧПУ

Страниц (1): [1]
 

1. Itan - 13 Ноября, 2016 - 08:55:06 - перейти к сообщению
Почему по-отдельности правила работают, а если вместе написать, как в коде ниже, то бесконечная переадресация?

CODE (htmlphp):
скопировать код в буфер обмена
  1. ErrorDocument 404 /404/
  2.  
  3. <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
  4.   Header set Cache-Control "max-age=604800"
  5. </FilesMatch>
  6.  
  7.  
  8. # Вот тут не получается, цикл зацикливается
  9. RewriteEngine on
  10. RewriteBase /
  11. RewriteCond %{REQUEST_FILENAME} !-d
  12. RewriteCond %{REQUEST_FILENAME} !-f
  13. RewriteRule ^go_to/(.*) modules/redir.php?q=$1 [L]              
  14. RewriteRule ^(.*) index.php?q=$1

(Добавление)
Работает так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. RewriteEngine on
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteCond %{REQUEST_FILENAME} !-f          
  6. RewriteRule ^go_to/(.*) modules/redir.php?q=$1 [L]
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8. RewriteCond %{REQUEST_FILENAME} !-f                        
  9. RewriteRule ^(.*) index.php?q=$1 [L]


Вопрос: грамотно ли это?
2. miketomlin - 14 Ноября, 2016 - 14:34:18 - перейти к сообщению
Более-менее. Все необходимые условия нужно писать перед каждым правилом. Сам по себе набор след. директив вроде бы должен работать.
CODE (text):
скопировать код в буфер обмена
  1.  
  2. RewriteBase /
  3. RewriteRule ^(.*) index.php?q=$1 [L]
  4.  

Скорее всего у вас было влияние одного правила на др.

Проблема в том, что при таком подходе вам придется постоянно городить новые правила. Гляньте эту мою статью: Как сделать единую точку входа с ЧПУ? Т.е. делайте обращение ко всем модулям через единую точку входа.

 

Powered by ExBB FM 1.0 RC1