Что не так с этим правилом mod_rewrite? - PullRequest
1 голос
/ 21 августа 2009

Может кто-нибудь определить, что не так с этим переписать URL? Я не могу заставить его что-либо передавать в GET (скрипт загружается, но параметры не передаются):

RewriteRule ^archive(/(.*))?$ archive.php?action=$1 [QSA,L]

Я хочу сопоставить "archive / browse /" с "archive.php? Action = browse".

Ответы [ 3 ]

3 голосов
/ 21 августа 2009

Вы можете получить некоторые конфликты, когда MultiViews включен. Если он включен, Apache сначала пытается найти файл с похожим именем для сопоставления запроса, прежде чем передать его mod_rewrite. Таким образом, запрос /archive/browse/ заканчивается на /archive.php/browse/, прежде чем mod_rewrite сможет сопоставить его с вашим /archive.php?action=browse.

Попробуйте отключить его с помощью:

Options -MultiViews
1 голос
/ 21 августа 2009
RewriteEngine On
RewriteRule ^archive/(.*)$  archive.php?action=$1 [QSA,L]

Переписал бы что-нибудь после /archive/ в archive.php?action=test/dir/path

0 голосов
/ 21 августа 2009
RewriteRule ^archive/([^/]*) archive.php?action=$1 [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...