htaccess重定向去奇异的地方

时间:2015-10-22 18:04:19

标签: apache .htaccess mod-rewrite redirect

与htaccess相比,量子物理学是微不足道的。我试图明显地从一个URL重定向到另一个URL,即完成HTTP请求。我有:

#RewriteCond %{REQUEST_URI} !(inc|out\.|admin|static|channel) [NC]
#RewriteRule ^([a-z\-]+)(/([a-z_]+))?/?$ channel/$1/$3 [L,R=301]

但不可思议的是,这显然会使用户反弹

mydomain.com/home/xxxx/public_html... //etc

如果我删除了[L,R=301],它确实会进行重定向,但只是默默地进行重定向。怎么了?

1 个答案:

答案 0 :(得分:1)

  

与htaccess

相比,量子物理学是微不足道的

lol:)))

将此规则与绝对目标网址一起使用:

RewriteCond %{REQUEST_URI} !(inc|out\.|admin|static|channel) [NC]
RewriteRule ^([a-z-]+)(/([a-z_]+))?/?$ /channel/$1/$3 [L,NC,R=301]

Chnage是在目标网址/之前添加channel。如果没有RewriteBase指令并且在目标URL中缺少前导/,它会在执行完全重定向时在目标URL之前添加当前目录。

PS:但我认为这是一个mod_rewrite错误。 IMO应该将DocumentRoot的当前相对路径视为默认RewriteBase