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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с ЧПУ

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Itan
Отправлено: 13 Ноября, 2016 - 08:55:06
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Почему по-отдельности правила работают, а если вместе написать, как в коде ниже, то бесконечная переадресация?

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]


Вопрос: грамотно ли это?
 
 Top
miketomlin
Отправлено: 14 Ноября, 2016 - 14:34:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июль 2016  


Помог: 5 раз(а)




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

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

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

(Отредактировано автором: 14 Ноября, 2016 - 14:35:46)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB