htaccess переписать - имя файла не распознано

0

Работал над этим в течение нескольких дней, но я не могу понять это.

У меня два файла в директории:

  1. index.php - который загружает список статей в разделе новостей
  2. article.php - который загружает сам файл статьи с содержимым

Ниже я застрял в первом правиле файла index.php в файле.htaccess. (Пробовал много вещей, включительно и файлы все в порядке, но правила htaccess, которые у меня здесь, не передаются index.php. Файл статьи также загружается отлично. За исключением случаев применения этих двух строк ниже.)

ссылка:

domain.com/news/index/66/bass (works)

Определяется:

RewriteRule ^/?news/[\w-]+/([\w-]+)/([\w-]+)/?$ /news/index.php?news_id=$1&page_id=$1 [QSA,NC]

Затем, на этой странице, нажмите:

domain.com/news/article/66-17506/SEO-FRIENDLY-TITLE

Определяется:

RewriteRule ^/?news/[\w-]+/([\w-]+)/([\w-]+)/?$ /news/article.php?news_id=$1&page_id=$1 [QSA,NC]

И там я застрял в предыдущем определении index.php. Я уже удалил значение [L] и пробовал много вещей. Я предполагаю, что все, что нужно, это загрузить article.php.

Любая помощь спасет много статей в Интернете!

Теги:
.htaccess
php-7
url-rewriting

1 ответ

1
Лучший ответ

Проблема заключается в том, что оба ваших регулярных выражения для соответствия URL-адреса одинаковы. Итак, все, что может соответствовать правилу article.php, уже будет захвачено правилом index.php. Можете ли вы изменить два правила:

RewriteRule ^/?news/index/([\w-]+)/([\w-]+)/?$ /news/index.php?news_id=$1&page_id=$1 [QSA,NC]
RewriteRule ^/?news/article/([\w-]+)/([\w-]+)/?$ /news/article.php?news_id=$1&page_id=$1 [QSA,NC]
  • 0
    Спасибо тебе за это! Я должен был установить первое правило с помощью «индекса» (и еще одного над ним) - и пропустить «статью» в двух правилах ниже, чтобы исправить это. Этот действительно спас мне день. Еще раз спасибо!
  • 0
    Не волнуйтесь. Рад, что смог помочь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню