.htaccess - 将所有 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 时,它不会重定向。
解决方案
在现有的重写之前尝试以下操作:
# 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_STATUS
env var 的条件是防止重定向循环所必需的。
在更改为 301(永久)重定向之前使用 302(临时)重定向进行测试,以避免缓存问题。
...在网站的主页上。
请注意,您必须已更新所有内部链接以指向所需的 URL。上面的重定向不是重定向内部链接,而是将搜索引擎爬虫和第 3 方入站链接重定向到旧 URL 以保留 SEO。
推荐阅读
- python - 为什么 subprocess.check_output 在作为服务运行时不起作用
- reactjs - 将 setState 上的类型分配给 React Typescript
- r - ggraph:根据属性的顶点位置
- sql - Oracle SQL 代码列出一个人的就业事件,另外 2 列专门列出以前的事件和日期
- python - 如何克服上市网站上的蜜罐上市?(刮擦)
- python - 用beautifulsoup 解析站点
- reactjs - 如何在 React 状态下管理可变长度数组
- prolog - 如何重写以下内容以使其使用 if_?
- javascript - 如何获得正确的插入符号绝对位置
- android - 尝试连接到服务器时带有异步任务的进度条