【发布时间】:2019-01-08 20:10:19
【问题描述】:
我已经在 Stackoverflow 上搜索了所有内容,并在 Google 上进行了广泛搜索,但我无法完成这个看似简单的任务。
我正在尝试在 htaccess 中设置一个规则,通过删除查询字符串来清理 URL,但保持其值不变:
http://example.local/?p=subscribe
变成:
http://example.local/subscribe
我尝试了以下各种方法:
RewriteEngine on
RewriteCond %{QUERY_STRING}
RewriteRule (.*) /$1? [R=301,L]
或者,
RewriteCond %{QUERY_STRING} ^p=$ [NC]
RewriteRule ^(/?)?$ $1? [R=301,L,NC]
或者,
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?([^\ ]+)
RewriteRule ^$ /%1? [R=301,L]
但没有任何效果!
任何帮助将不胜感激。
【问题讨论】:
-
抱歉,不清楚您的实际要求。 究竟是什么意思“删除查询字符串”。浏览器中请求的 URL 是哪个,该 URL 应该被重写或重定向到哪个请求?
-
基本上重写了 url,这样查询字符串 "?p=" 就被删除了。但不删除最后一部分“订阅”。
/?p=subscribe变为/subscribe
标签: .htaccess variables url url-rewriting