Правило перезаписи 2 URL для 1 динамической страницы - PullRequest
0 голосов
/ 29 января 2011

У меня есть динамическая страница с именем show.php. Страница является динамической, и URL может быть либо show.php?name=john-doe, либо show.php?category=student.

Я пытаюсь создать правило перезаписи, которое превращает URL в /show/john-doe.html для имен или /show/student.html для категории.

Это то, что у меня есть в моем .htaccess до сих пор.

RewriteRule ^show/([^/]*)\.html$ show.php?name=$1 [L]
RewriteRule ^show/([^/]*)\.html$ show.php?category=$1 [L]

В настоящее время работает только правило имени, а правило категории - нет. Что не так?

1 Ответ

0 голосов
/ 29 января 2011

Проблема в том, что вы отправляете все show / xxx.html на один и тот же URL (первый).Поскольку оба правила перезаписи используют один и тот же параметр, будет работать только первый.

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

Либо вы используете show.php? Id = xxx и принимаетеи имя, и категорию в вашем PHP, и определите, какую страницу показывать.

Или вы используете два разных типа URL при перезаписи, чтобы получить show / category / student.html и show / student / john-doe.HTML вроде так:

RewriteRule ^show/student/([^/]*)\.html$ show.php?name=$1 [L]
RewriteRule ^show/category/([^/]*)\.html$ show.php?category=$1 [L]
...