使用IIRF URL重写引擎时如何获取“最初请求的”URL

时间:2010-10-09 06:35:06

标签: iis seo url-rewriting iirf

我在IIS上使用Iconic的IIRF URL Rewriting Engine,“花哨”的网址是这样的:

http://some-website.com/some-function/418/some-keyword-rich-filename.html

此示例网址对应于:

http://some-website.com/some-function.asp?SOME-ID=418

现在在some-function.asp文件中我需要知道浏览器请求的页面。我浏览了所有IIS变量,但无法在其中找到任何值/some-function/418/some-keyword-rich-filename.html

作为旁注,我需要此信息才能将301重定向发送到浏览器。例如。如果浏览器请求:

http://some-website.com/some-function/418/index.html

我首先需要将浏览器发送到:

http://some-website.com/some-function/418/some-keyword-rich-filename.html

这就是我需要原始网址进行比较的原因。

1 个答案:

答案 0 :(得分:6)

对于IIRF,这称为 unmangling ,可以使用修饰符U来实现。

来自IIRF manual

  

U =将原始网址存储在服务器中   变量HTTP_X_REWRITE_URL

只需将修饰符U添加到您要保留原始网址的RewriteRule即可。例如:

RewriteRule ^/some-function/(\d+)/(.*)$ /some-function.asp?SOME-ID=$1 [I,U,L] 

然后,在您的网页代码some-function.asp中,您可以像这样访问原始网址(经典ASP):

Request.ServerVariables("HTTP_X_REWRITE_URL")