【问题标题】:Get the URL string a user entered when using .htaccess获取用户在使用 .htaccess 时输入的 URL 字符串
【发布时间】:2009-02-10 11:40:48
【问题描述】:

我目前正在使用 htaccess 文件来重定向用户

 detail.asp?CategoryID=XX&SubCategoryID=XX&ProductID=XX

 catid-XX-subcatid-xx-productid-xx

但我现在需要检查他们是否到达了正确的页面。我通过检查查询字符串值是否正确来做到这一点。但是我宁愿检查用户是否到达了

 catid-XX-subcatid-xx-productid-xx 

以便 Google 不会索引重复的内容。

所以我想知道是否有办法在 htaccess 重写之前从 URL 栏中找出字符串。

如果我在页面上

 catid-XX-subcatid-xx-productid-xx

然后使用 VBScript,如果我检查

 Request.ServerVariables("URL") & Request.ServerVariables("QUERY_STRING")

我明白了

 detail.asp?CategoryID=XX&SubCategoryID=XX&ProductID=XX

有什么方法可以获取正确的 URL 字符串?

【问题讨论】:

    标签: url .htaccess redirect vbscript url-rewriting


    【解决方案1】:

    环境变量REQUEST_URI 应该包含请求的URI。


    您可以尝试使用PATH_INFO 并使用 ASP 解析请求的 URI 路径:

    RewriteRule !^detail\.asp detail.asp%{REQUEST_URI} [L]
    

    然后,请求的 URI 路径应该在以下位置可用:

    Request.ServerVariables("PATH_INFO")
    

    【讨论】:

    • 那将是完美的,但不幸的是我被困在使用没有等效功能的 VBscript 中。应该在问题中说明这一点。谢谢!
    • 是服务器提供了这个环境变量。所以“Request.ServerVariables("REQUEST_URI")”不起作用?
    • 是的,如果我在 PHP 中调用它,它会返回正确的 URI,但它在 ASP 中不受支持,因此返回一个空字符串。
    【解决方案2】:

    这让我想起了这样的事情;

    var i = 1+1;
    /* lets double check to make sure the cpu has calculated it right.. 
       just in case, I mean, you never know... */
    
    if (i != 2) return ZOMG END OF THE WORLD!!
    

    【讨论】:

    • 没那么多,重要的是只有 URL 是最终 URL,否则 Google 会将 2 个具有相同内容的页面编入索引。这会导致网站被 Google 标记下来,如果这种情况经常发生,它可能会扼杀搜索引擎排名。
    猜你喜欢
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    相关资源
    最近更新 更多