我无法绕过URL重写。我想做的事情似乎很简单,但是我在获得想要的结果时遇到了问题。
我希望允许用户在最后输入www.mysite.com/search/real
并选择/。这会将他们带到www.mysite.com/content/search_real_property.asp
就是这样。这是我现在的规则。这个问题是它会继续堆叠。
RewriteRule ^(search) content/search_real_property.asp
所以这会有效/search/real
,但search/real/search/real/search/real/
也是如此
和别的。
答案 0 :(得分:1)
假设没有其他问题,您已经打开了重写引擎(RewriteEngine On)并且您要么在httpd-vhosts.conf中添加重写,要么在Web树的根目录中添加.htaccess文件(以便解决任何路径问题)...然后问题只是正则表达式模式匹配之一。虽然我对ASP运行似乎是一个Apache服务器感到有点困惑(假设我们正在谈论这个IS mod重写)。
所以,你真正想要的就是终止比赛 - 比如:
RewriteEngine On
RewriteRule ^search/real/?$ /content/search_real_property.asp
这会将它修复为/ search / real(带或不带斜杠,?表示匹配前面的字符0或1次)到/content/search_real_property.asp。由于$符号表示行终止符(EOL有效),“真实”之后必须没有任何内容(除了可能是1个正斜杠)。
为了获得更大的灵活性,您可能希望了解使用正则表达式可以实际执行的操作,例如......
RewriteEngine On
RewriteRule ^search/([^/]*)/?$ /content/search_real_property.asp?query=$1
这将允许您获取任何字符串并将其作为名为query(Request.QueryString('query')IIRC)的变量在地址栏中传递。
尝试:http://www.regular-expressions.info/了解更多信息。