基本上我想用查询字符串将一些奇怪的URL重写到指定的url而没有查询字符串(所以给定的查询字符串在重写url中很重要) 那么,当子文件夹为" dir1 / dir2 /?QUERY_STRING"时,如何定义匹配的查询字符串仅匹配?
我试过了:
网址我想重写:http://www.domain.de/dir1/dir2/?id=xyz:test
我的第一次尝试:
RewriteCond %{QUERY_STRING} id=xyz:test
RewriteRule ^(.*)$ http://www.domain.de/rewrite.php? [R=301,L]
这是有效的,但是选择哪个子文件夹很重要(因此它也适用于dir1/?id=xyz:test
并且它只适用于dir1/dir2/?id=xyz:test
)
我尝试了这条规则:
RewriteRule ^/?dir1\/dir2\$ rewrite.php
但它不起作用。我认为因为我有一个文件夹,没有文件扩展名,如:
RewriteRule ^/?dir1\/dir2\/\.php$ rewrite.php [QSA,L]
我做错了什么?
谢谢你们!
答案 0 :(得分:1)
您可能想要添加另一个RewriteCond,例如:
RewriteCond %{REQUEST_URI} ^/dir1/dir2$ [NC]
RewriteCond %{QUERY_STRING} id=xyz:test
RewriteRule ^(.*)$ http://www.domain.de/rewrite.php? [R=301,L]
请注意,[NC]表示"无案例"