如何重定向托管根目录的子目录?

时间:2018-06-28 16:22:25

标签: .htaccess mod-rewrite

在设计网站的新版本时,我将每个版本都放置在“版本”文件夹中,并在完成后将域指向新版本。但是,我注意到我可以直接通过进入旧版本的文件夹来访问旧版本,也可以通过其文件夹名称访问新版本。

例如,如果我使用v1v2作为子目录,并且将域指向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文件中使用重定向,但是没有一个能够成功工作。谁能指出我正确的方向?

谢谢。

0 个答案:

没有答案