将带有查询字符串的 URL 重定向到不带查询字符串的 URL

问题描述 投票:0回答:1

我最近从 asp.net 网站迁移到了 wordpress。 我的旧网址看起来像这样的domainname.com/heating-cooling-new-york-city.asp?tn=Washington%20Heights,我想将此特定网址重定向到domainname.com/heating-cooling-nyc/washington-heights

我在 htacess 文件中编写了以下代码 重写引擎开启 RewriteCond %{QUERY_STRING} ^(.)tn=华盛顿%20Heights%20NY(.)$ [NC] RewriteRule ^heating-cooling-new-york-city.asp$ https://domainname.com/heating-cooling-nyc/washington-heights/ [L,R=301]

但它在最后传递查询字符串,最终的 URL 是这样的 https://domainname.com/heating-cooling-nyc/washington-heights/washington-heights/?tn=Washington%20Heights%20NY

请帮助我重定向到此网址domainname.com/heating-cooling-nyc/washington-heights

.htaccess url http-redirect
1个回答
0
投票

要正确重定向 URL 并剥离查询字符串,您需要在

QSD
文件中使用
.htaccess
(查询字符串丢弃)标志。此标志可防止将查询字符串附加到新 URL。

这是您的

.htaccess
文件的更正代码:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^tn=Washington%20Heights$ [NC]
RewriteRule ^heating-cooling-new-york-city.asp$ https://domainname.com/heating-cooling-nyc/washington-heights/? [L,R=301,QSD]

在此代码中:

  • RewriteCond %{QUERY_STRING} ^tn=Washington%20Heights$ [NC]
    :此条件检查查询字符串是否匹配
    tn=Washington%20Heights
  • RewriteRule ^heating-cooling-new-york-city.asp$ https://domainname.com/heating-cooling-nyc/washington-heights/? [L,R=301,QSD]
    :此规则重定向 URL,而
    QSD
    标志确保丢弃查询字符串。

这应该会导致正确的重定向,而无需将查询字符串附加到新 URL。

© www.soinside.com 2019 - 2024. All rights reserved.