我最近从 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
要正确重定向 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。