我的网站根文件夹位于子文件夹/ web /下,并且所有网址都包含/web/toto.php。我通过设置一个规则来改变这一点,以便所有请求都在内部指向子文件夹但是url现在更短了/toto.php。
RewriteCond %{REQUEST_URI} !^/web/(.*)
RewriteRule ^(.*)$ /web/$1 [L]
现在,旧的地址仍然可用,我需要将/ web / *网址重定向到短版本。怎么做到这个?文件存在阻止我编写正在运行的规则。
答案 0 :(得分:1)
您需要一个新的重定向规则:
RewriteEngine On
# to externally redirect /web/path to /path
RewriteCond %{THE_REQUEST} \s/+web/(\S*)\s [NC]
RewriteRule ^ /%1 [R=302,L,NE]
# to route /path to /web/path
RewriteCond %{REQUEST_URI} !^/web/ [NC]
RewriteRule ^(.*)$ /web/$1 [L]