我正在重定向:
example.com/category/name-of-title/number
到此:
example.com/name-of-title/number
除了在重定向之后将%20HTTP
添加到网址末尾之外,所有内容都完美无缺:
example.com/name-of-title/number%20HTTP
这是我的代码:
RewriteCond %{THE_REQUEST} /category/(.*)/(.*) [NC]
RewriteRule ^ /%1? [R=301,L]
答案 0 :(得分:0)
由于as the documentation states,THE_REQUEST
是
“浏览器向服务器发送完整的HTTP请求行(例如,”GET /index.html HTTP / 1.1“)”
- 所以在你的情况下,这就像GET /category/name-of-title/number HTTP/1.1
,并且将模式/category/(.*)/(.*)
应用到其上会导致部分name-of-title/number HTTP
作为第一个匹配(以及剩余的{ {1}}作为第二个),因为正则表达式的贪婪。
无论如何使用1.1
和值RewriteCond
是无意义的 - 这样的简单THE_REQUEST
应该可以完美地运行:
RewriteRule
如果你想匹配任何可能落后于RewriteRule ^category/(.*)/(.*)$ /$1/$2 [R=301,L]
,你甚至不需要两个捕捉子模式,但可以简单地使用
category/
答案 1 :(得分:0)
%20http
是一个空白的空间!
删除空格,此%20http
将不再显示。