将%20HTTP重定向到网址的末尾

时间:2014-05-17 21:17:42

标签: php .htaccess mod-rewrite redirect

我正在重定向:

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]

2 个答案:

答案 0 :(得分:0)

由于as the documentation statesTHE_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将不再显示。