繁体   English   中英

创建基于查询字符串的重写规则

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM