我从/something重定向到/东西/在我的.htaccess文件中设置了这个设置:
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*[^/])$ http://%{HTTP_HOST}/$1/ [L,R=301,QSA]对于以123.html结尾的页面,我想添加相同的内容
RewriteCond %{REQUEST_URI} [0-9]+\.html$
RewriteRule ^(.*[0-9]+\.html[^/])$ http://%{HTTP_HOST}/$1/ [L,R=301,QSA]不管用..。但!
RewriteCond %{REQUEST_URI} [0-9]+\.html$
RewriteRule ^(.*[0-9]+\.htm.*[^/])$ http://%{HTTP_HOST}/$1/ [L,R=301,QSA]这个变体很好用!为什么阿帕奇不喜欢“我”?谁知道呢?
Apache版本: 2.4.9
发布于 2014-10-02 15:04:53
你试图不工作的规则是:
RewriteRule ^(.*[0-9]+\.html[^/])$ http://%{HTTP_HOST}/$1/ [L,R=301,QSA]这不起作用,因为regex是不正确的,因为您的请求URI以.html结尾,并且在.html之后什么都没有。因此,\.html[^/]不匹配URI,但\.htm.*[^/]确实匹配,因为最后一次[^/]匹配字母l。
正确的规则是:
RewriteRule ^(.*[0-9]+\.html)$ http://%{HTTP_HOST}/$1/ [L,R=301]PS:您也不需要使用RewriteCond
https://stackoverflow.com/questions/26163701
复制相似问题