如何在Apache中使用RewriteRule从/ abc /重定向到/ abc?

时间:2009-10-17 18:43:52

标签: apache mod-rewrite redirect

RewriteRule ^([^/\.]+)/$ $1 [R]website.com/abc/重定向到website.com/home/user/www/abc

如何重定向到正确的位置? (website.com/abc

3 个答案:

答案 0 :(得分:0)

RewriteRule的第一部分是匹配部分,第二部分是替换表达式。对于full-url RewriteRule,它们应该以{{1​​}}(斜杠)开头,因为^/之后的路径始终以root-slash开头。要将http://exampl.com重定向到http://example.com/abc/(删除尾部斜杠),您可以执行以下操作:

http://example.com/abc

答案 1 :(得分:0)

看起来URL已经被重写为文件名然后你正在重写文件名。当在.htaccess文件中指定重写规则时,通常会发生这种情况。问题是由于当Apache读取.htaccess文件时,它已经将所有URL解析为文件名。对此的标准解决方案是在.htaccess中提供RewriteBase规则。尝试:

RewriteBase /

在你的RewriteRule之上为初学者。

更多文档是here

答案 2 :(得分:0)

您可以使用其他 L 标记进行尝试,以避免应用任何其他规则:

RewriteRule ^([^/\.]+)/$ /$1 [R,L]

但如果没有别的办法,请试试这个:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ (/[^/.?\ ]+)/[? ]
RewriteRule ^[^/.]+/$ %1 [R]