Не могу найти ошибку в .htaccess

A
На сайте с 12.10.2011
Offline
186
758

Если не туда запостил перенесите пжста, просто видел схожий топик в этом разделе.

Всегда находил ответы по .htaccess в сети, а тут не могу разобраться:

RewriteRule ^blog/?$ blog-index.php
RewriteRule ^blog/([0-9]+)-(.+)/?$ blog.php?blogID=$1

Т.е. нужно чтобы для корня (domain/blog) выдавался blog-index.php, а для domain/blog/14-sometitle/ выдавался blog.php

Во втором случае работает, а вот в первом нет, хотя правило идет вначале, однако ж говорит 404, не подскажите где косяк?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#1


RewriteRule ^blog/([0-9]+)-(.+)/?$ blog.php?blogID=$1 [L]
RewriteRule ^blog/?$ blog-index.php
⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
A
На сайте с 12.10.2011
Offline
186
#2
Оптимизайка:

RewriteRule ^blog/([0-9]+)-(.+)/?$ blog.php?blogID=$1 [L]
RewriteRule ^blog/?$ blog-index.php

Спасибо, но не работает, по прежнему 404 :)

А не плохо использовать [L], ведь это обозначает вроде прекращать обрабатывать .htaccess?

UPDATE: я думал у меня конфликт двух строк, так оказывается эта строка вообще не работает (убрал вторую для проверки), с ней что то не так?

RewriteRule ^blog/?$ blog-index.php
Оптимизайка
На сайте с 11.03.2012
Offline
396
#3
alexverem:
А не плохо использовать [L], ведь это обозначает вроде прекращать обрабатывать .htaccess?

[L] означает прекращать обрабатывать RewriteRule'ы. Т.к. у вас под оба регулярные выражения URI domain/blog/14-sometitle/ подходит, то нужно при совпадении остановиться, иначе сработает последнее подходящее.

---------- Добавлено 08.02.2019 в 02:03 ----------

alexverem:
с ней что то не так?

Если не задан "RewriteBase /" то с ней не так отсутсвие слеша в начале:

RewriteRule ^/blog/?$ /blog-index.php

но т.к. предыдущее правило по вашим утверждениям у вас работает, то возможно причина в другом. Вы приведите полностью все правила.

A
На сайте с 12.10.2011
Offline
186
#4

решил вопрос, спасибо, у меня там правило было

RewriteRule ^([a-z-]+)/?$ city.php?place=$1

Видимо оно забирало на себя? Я перенес правило про blog вверх

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