首页 > 解决方案 > 将所有 down.php?name=iptools.online 扩展重定向到 .html

问题描述

我想down.php?name=NAME在网站的主页上自动重定向。

例如:

http://example.com/down.php?name=iptools.online

http://example.com/iptools.online

我试过这段代码:

RewriteRule ^([^/]*)\.html$ /down.php?name=$1 [L]

它可以工作,但是在使用旧 URL 时,它不会重定向。

标签: .htaccessredirect

解决方案


在现有的重写之前尝试以下操作:

# Redirect "/down.php?name=value" to "/value"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^name=([^&]+)
RewriteRule ^down\.php$ /%1.html [QSD,R=301,L]

%1是对前面捕获URL 参数值的CondPattern的反向引用。name

需要该QSD标志才能从请求中丢弃原始查询字符串。

检查REDIRECT_STATUSenv var 的条件是防止重定向循环所必需的。

在更改为 301(永久)重定向之前使用 302(临时)重定向进行测试,以避免缓存问题。

...在网站的主页上。

请注意,您必须已更新所有内部链接以指向所需的 URL。上面的重定向不是重定向内部链接,而是将搜索引擎爬虫和第 3 方入站链接重定向到旧 URL 以保留 SEO。


推荐阅读