$ _GET没有通过我的一个带有QSA标志的htaccess规则传递

时间:2014-11-09 08:52:39

标签: php .htaccess url-rewriting

我的网址重写规则有问题。我的htaccess中有以下规则:

SetEnv PHP_VER 5
RewriteEngine on

RewriteRule ^bands.html$ /groupes.php [L,NC]
RewriteRule ^bands/([0-9a-zA-Z,-]+).html$ /groupes.php?groupe_nom_rewrite=$1 [QSA,L,NC]
RewriteRule ^bands/([0-9a-zA-Z,-]+)/([0-9a-zA-Z,-]+).html$ /albums.php?groupe_nom_rewrite=$1&album_nom_rewrite=$2 [QSA,L,NC]
RewriteRule ^labels.html$ /labels.php [L,NC]
RewriteRule ^labels/([0-9a-zA-Z,-]+).html$ /labels.php?label_nom_rewrite=$1 [QSA,L,NC]

前四个规则正常工作,但最后一个规则没有:参数label_nom_rewrite在重定向期间丢失。在使用之前我有QSA标记和类似规则(例如,在第二个中,我将参数groupe_nom_rewrite作为$_GET变量,如预期的那样。)

为什么?我该如何解决?

提前感谢您的时间!

1 个答案:

答案 0 :(得分:0)

尝试关闭多视图:

Options -Multiviews

mod_negotiation模块可以打开,这意味着当它看到以/labels/开头的请求时,它会自动将请求发送到/labels.php并绕过mod_rewrite。