在内部重写到子目录并重定向旧的url



我的网站根文件夹在子文件夹/web/下,所有用于包含/web/toto.php的url。我通过设置规则改变了这一点,以便所有请求都指向子文件夹,但url现在更短了/toto.php.

RewriteCond %{REQUEST_URI} !^/web/(.*) 
RewriteRule ^(.*)$ /web/$1 [L]

现在,旧地址仍然可用,我需要/web/* url重定向到短版本。怎么做呢?

你需要一个新的重定向规则:

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]

最新更新