[英]Create a rewrite rule based on querystring
我在.htaccess文件中有很多重定向。 现在,我需要根据URL的querystring值为其创建重写规则。
http://www.mydomain.com/subdir/RentalDetails.aspx?RentalId=1072
该网址的所有流量都应转到...
http://www.mydomain.com/subdir/RentalDirectory.aspx
我研究并找到了一些关于该主题的好帖子,并提出了这个建议。
#discontinued properties
RewriteCond %{REQUEST_URI} ^/RentalDetails\.aspx$
RewriteCond %{QUERY_STRING} ^RentalId=1072$
RewriteRule ^(.*)$ /subdir/RentalDirectory.aspx? [R=301,L]
不幸的是,它不起作用。 有人可以帮我弄清楚我哪里出了问题吗? 提前谢谢了!
我猜想RewriteCond是错误的:uri不应看起来像
^/RentalDetails\.aspx$
[编辑-我终于设法找到了实际的文档,发现查询字符串是一条红色的鲱鱼。 但是,我也错过了字符串开头的'^',这可能是导致此问题的原因]
由于表达式开头的^
表示“字符串必须从此处开始”,而$
的末尾表示“字符串必须从此处开始”,因此您的正则表达式过于严格,无法满足您的需要。
在apache文档中, REQUEST_URI
变量排除了查询字符串,所以这不是问题。 但是,您试图将/subdir/RentalDetails.aspx
的URL与必须以单词/RentalDetails
开头的正则表达式/RentalDetails
尝试类似
# No ^ at the start, this will match RentalDetails.aspx in any location
/RentalDetails\.aspx$
要么
# This will only match in the /subdir/ directory.
^/subdir/RentalDetails\.aspx$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.