我在htaccess中有以下内容,并且工作正常
RewriteCond %{REQUEST_URI} ^/artist\.php$
RewriteCond %{QUERY_STRING} ^bandid=([0-9]*)$ [NC]
RewriteRule ^(.*) /band.php?BandId=%1 [L]
但是一些旧的参考者会发送其他查询字符串:
bandid=1326&order=ASC&orderby=Tdate
apache给他们404
如何告诉mod_rewrite
在bandid之后忽略任何其他参数
答案 0 :(得分:3)
用以下代码替换您的代码:
RewriteCond %{QUERY_STRING} (?:^|&)bandid=([0-9]*)(?:&|$) [NC]
RewriteRule ^artist\.php$ /band.php?BandId=%1 [L,NC]
正则表达式(^|&)bandid=([0-9]*)(&|$)
将确保匹配bandid=1326
,无论是否存在其他查询参数。