Настройка htaccess для раздела статей

NL
На сайте с 14.12.2007
Offline
99
1123

Вопрос по поводу htaccess

Делаю стандартный раздел статей

Если пишу вот такое правило

RewriteRule ^stati/(.*).php/?$ stati/stati.php?url=$1

То выдает ошибку 404

А если добавляю вот так

RewriteRule ^poleznie-stati/(.*).php/?$ stati/stati.php?url=$1

И не понимаю, почему так происходит. Подскажите пожалуйста.

tommy-gung
На сайте с 22.11.2006
Offline
287
#1

а по адресу какому обращаешься?

Здесь не могла быть ваша реклама
NL
На сайте с 14.12.2007
Offline
99
#2

Адрес страницы со статьями

www.site.ru/stati/

адрес статьи

www.site.ru/stati/dekor-dlja-septikov-i-kanalizacij.php

tommy-gung
На сайте с 22.11.2006
Offline
287
#3

RewriteBase /

попробуй добавить

J
На сайте с 20.02.2014
Offline
120
jkm
#4

Там дело не в RewriteBase, а в том, что mod_rewrite запускает обработку запроса снова и снова, до тех пор, пока он не перестанет меняться.

Запрос stati/page.php будет преобразован в stati/stati.php?url=page и цикл обработки запустится заново.

Адрес stati/stati.php совпадает с шаблоном ^stati/(.*).php/?$ и будет преобразован в stati/stati.php?url=stati

Это продробно описано в статье http://habrahabr.ru/company/sprinthost/blog/129560/

Нужно исключить повторную обработку этим правилом.

Есть несколько способов.


RewriteRule ^stati/(?!stati\.php)(.*)\.php/?$ stati/stati.php?url=$1


RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^stati/(.*).php/?$ stati/stati.php?url=$1


RewriteRule ^stati/stati.php - [L]
RewriteRule ^stati/(.*).php/?$ stati/stati.php?url=$1
NL
На сайте с 14.12.2007
Offline
99
#5

Странно, что-то не один способ не сработал.

RewriteBase у меня стоит

проще наверное адрес каталога поменять - poleznie-stati

M
На сайте с 04.12.2013
Offline
223
#6

Проще поменять имя каталога, в котором находится файл-обработчик (например, на kdgdkhudrlddl), или вообще «вытянуть» файл в корень.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий