RewriteRule ^([^/\.]+)/$ $1 [R]
从website.com/abc/
重定向到website.com/home/user/www/abc
如何重定向到正确的位置? (website.com/abc
)
答案 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]