如何从根文件夹重定向到子文件夹,然后屏蔽该文件夹?
我试过了:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^root\.com$
RewriteRule (.*) http://root.com/$1 [R=301,L]
RewriteRule ^$ /sub [L]
然而,这不起作用。欢迎任何帮助。
答案 0 :(得分:0)
澄清我认为您正在寻找的内容:
您希望输入http://root.com
但没有尾随路径的用户以静默方式重写为http://root.com/sub
。
但是,如果用户直接输入http://root.com/sub
,您希望将其重定向到http://root.com
。
root.com中的任何其他路径都应该保持不变。
以下两条规则可以实现这一目标。如果您有多个域并且只希望将其应用于一个域,请在每个RewriteRule前添加原始RewriteCond。
RewriteRule ^sub/?$ http://root.com/ [R=301,L]
RewriteRule ^$ /sub [END]
第一个规则将带有或不带斜杠的重定向/ sub重定向到root.com。第二条规则将基域重写为/ sub。
编辑:根据Jon Lin的评论,下面,[L]
标志仅停止当前一轮处理,内部重写再次通过规则发送(我总是伪造那部分)。因此,您可以使用[END]
终止第二行,这将停止所有重写处理。问题是[END]
仅在Apache 2.4或更高版本中可用,因此如果您使用的是旧版本,则需要进行更复杂的操作。