如何使用查询字符串
从URL中删除?
符号
答案 0 :(得分:3)
RewriteEngine On
# This is to physically change what's in the browser's address bar using a client redirect
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?([^\ ]+)
RewriteRule ^$ /%1? [R=301,L]
# This is to internally rewrite on the server side
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/?(.+)$ /?$1 [L]
另外,请你能解释一下
[A-Z]{3,9}\ and ([^\ ]+)
本身意味着什么吗?在哪里可以阅读有关构建此类结构的内容?
该正则表达式用于匹配 HTTP请求,第一行看起来像这样:
GET /path/to/file HTTP/1.1
第一个单词是 METHOD ,可以是3到9个字符之间的任意长度(因此是{3,9}
,第二个单词是未更改的 URI请求。这是通过重写引擎,但在对它进行任何路径处理之前。最后一位是协议版本,并且在某种程度上是可选的,并确定之后是否会有标题。