【问题标题】:How to remove parameter from URL after 301 redirect using Mod Rewrite?如何在使用 Mod Rewrite 进行 301 重定向后从 URL 中删除参数?
【发布时间】:2015-10-15 22:16:44
【问题描述】:

我正在尝试修复一些重写。 301 重定向有效,但它向 URL 添加了一个新参数。

重定向触发后的当前输出为: http://exampelpage.com/new-page?pageID=oldpage

我们希望得到这个输出: http://exampelpage.com/new-page

当前的 .htaccess 代码

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.exampelpage\.com$
RewriteRule (.*) http://exampelpage.com/$1 [R=301,L]

#blog
RewriteRule ^blog/([^/]*)$ /index.php?currentpage=$1 
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?sideID=$1 
RewriteRule ^([a-åA-Å0-9_!-]+)/([a-åA-Å0-9_!-]+)/([a-åA-Å0-9_!-]+)$ index.php?sideID=$1&id=$2&title=$3 [L]

#admin
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?sideID=$1&subpage=admin/$2 [L,QSA]
RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* – [F,L]
ErrorDocument 404 http://exampelpage.com/404


# Permanent URL redirect
Redirect 301 /oldpage?__hstc=113653464.efdd41a653140fecad23cdf89637a97c.1426377600080.1426377600081.1426377600082.1&__hssc=113653464.1.1426377600083&__hsfp=59720947 http://exampelpage.com/new-page
Redirect 301 /oldpage http://exampelpage.com/new-page

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    您可以使用 RewriteRule。

    RewriteRule ^(.*)oldpage?__hstc=(.*)$ /oldpage [R=301,L]
    

    RewriteRule 仅适用于字符串。

    【讨论】:

    • 谢谢,但这并没有真正做任何事情。我知道这并不容易解释,但我们的系统在 URL 的末尾添加了 pageID。我们只是想删除那部分,这只会在重定向完成后发生。
    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 2021-01-24
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多