在设计网站的新版本时,我将每个版本都放置在“版本”文件夹中,并在完成后将域指向新版本。但是,我注意到我可以直接通过进入旧版本的文件夹来访问旧版本,也可以通过其文件夹名称访问新版本。
例如,如果我使用v1
和v2
作为子目录,并且将域指向v2
,我仍然可以通过访问{{1}来访问v1
},并可以通过访问mysite.com/v1
直接访问新版本。
在我的根目录mysite.com/v2
中,我尝试过重定向它们。域点可以正常工作,但是我无法使版本文件夹正确重定向。
.htaccess
我要完成的工作是将所有旧版本重定向到新版本,并从URL中删除新版本文件夹名称(如果他们通过该名称访问)。例如:
Options +FollowSymLinks -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^v1(.*)?$ /$1 [L,R=301]
RewriteRule ^v2(.*)?$ /$1 [L,R=301]
RewriteRule ^(.*)$ /v2/$1 [L,QSA]
</IfModule>
我为什么不删除旧版本?
如果新版本出现问题,我会保留旧版本,我需要快速还原。
我确保每次尝试都清除缓存以避免缓存问题。我已经尝试在根mysite.com/(v1|v2|v3|etc...) -> mysite.com
以及旧版本和新版本htaccess
文件中使用重定向,但是没有一个能够成功工作。谁能指出我正确的方向?
谢谢。