Последнее правило в mod_rewrite возвращает 404, даже если страница существует - PullRequest
1 голос
/ 25 сентября 2011

В моем файле .htacccess есть следующее:

RewriteBase /
ErrorDocument 404 /404.php
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^news/([a-zA-Z]+)/([0-9]+)-([a-zA-Z]+) /news/view-article.php?category=$1&id=$2&title=$3 [NC]
RewriteRule ^news/most-viewed/([a-zA-Z]+)/([0-9]+)-([a-zA-Z]+) /news/view-article.php?category=$1&id=$2&title=$3 [NC]

RewriteRule ^news/categories/([a-zA-Z]+) /news/categories/view-category.php?category=$1 [NC]

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

Нужно ли менять переменные? Я что-то пропустил?

ПОСТАНОВИЛИ:

RewriteBase /
ErrorDocument 404 /404.php
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^news/categories/?$ /news/categories.php [NC]
RewriteRule ^news/most-viewed/?$ /news/most-viewed.php [NC]

RewriteRule ^news/categories/([a-zA-Z]+)/?$ /news/view-category.php?category=$1 [NC]


RewriteRule ^news/categories/([a-zA-Z]+)/([0-9]+)-([a-zA-Z]+) /news/view-article.php?category=$1&id=$2&title=$3 [NC]

Мне не хватало $ на конце.

1 Ответ

2 голосов
/ 25 сентября 2011

Попробуйте, и дайте мне знать, если это работает

RewriteBase /
ErrorDocument 404 /404.php
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^news/([a-zA-Z]+)/([0-9]+)-([a-zA-Z]+)/?$ /news/view-article.php?category=$1&id=$2&title=$3 [NC,L]
RewriteRule ^news/most\-viewed/([a-zA-Z]+)/([0-9]+)-([a-zA-Z]+)/?$ /news/view-article.php?category=$1&id=$2&title=$3 [NC,L]
RewriteRule ^news/categories/([a-zA-Z]+)/?$ /news/categories/view-category.php?category=$1 [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...