【问题标题】:Htaccess , remove query string from 301 redirectHtaccess ,从 301 重定向中删除查询字符串
【发布时间】:2014-11-11 15:56:10
【问题描述】:

提前感谢您的帮助,

我已经查看了网络和堆栈溢出来寻找这个答案,我一直在尝试实现人们的答案,但也许我需要对我想要重定向的链接的直接答案。

我正在尝试使用 301 重定向摆脱查询字符串

我想要这个网址: /Errors/PageNotFound.aspx?aspxerrorpath=/CheeseCrisps.aspx

被重定向到: http://www.cheesesticks.com

但我的结果是这个网址: http://www.cheesesticks.com/?aspxerrorpath=/CheeseCrisps.aspx

我不希望获取变量(查询字符串)仍然在 url 上。我只希望新的网址是 cheesesticks[DOT]com

有人可以帮我编写重定向代码吗?谢谢!!

这是我目前使用的 301 重定向,我知道这是错误的.....
Redirect 301 /Errors/PageNotFound.aspx?aspxerrorpath=/CheeseCrisps.aspx [这是重定向网址的占位符,因为堆栈溢出不允许我发布超过 2 个网址]

【问题讨论】:

    标签: .htaccess variables get


    【解决方案1】:

    您可以在 root .htaccess 中使用此规则:

    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} .+
    RewriteRule ^Errors/PageNotFound\.aspx$ http://www.cheesesticks.com/? [L,R=301]
    

    目标 URL 中的/? 将删除任何现有的查询字符串。

    【讨论】:

    • 我只是将你给我的代码直接添加到我的 htaccess 文件中,没有做任何改动。结果仍然是cheesesticks.com/?aspxerrorpath=/CheeseCrisps.aspx 自己尝试一下:cheesesticks.com/Errors/PageNotFound.aspx?aspxerrorpath=/… 是否还有其他我可能遗漏的代码?
    • 确保您的 .htaccess 已启用,这是第一条规则。要验证您的.htaccess 是否已启用,请将相同的垃圾(随机)文本放在您的.htaccess 之上,看看它是否会生成 500(内部服务器)错误?
    • 您也将此 .htaccess 放在根目录或 /Errors/ 文件夹中吗?
    • htaccess 文件在根目录,但是你给我的代码不在文件顶部。我可以尝试并启用 htaccess,因为在我发布此问题之前,我正在尝试不同的事情并不断收到 500 个内部错误。让我试试文件最顶部的代码
    • 谢谢!终于奏效了!我和我的客户感谢您的帮助!荣誉
    猜你喜欢
    • 2012-08-16
    • 1970-01-01
    • 2014-02-02
    • 2013-06-21
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    相关资源
    最近更新 更多