使用.htaccess文件检查文件夹中的文件,如果找不到则重定向

时间:2015-03-25 21:59:32

标签: .htaccess mod-rewrite redirect

我想使用.htaccess文件,以便有人访问我们新网站上的旧网址,例如website.com/oldpage.asp .htaccess首先检查网站http://oldold/oldpage.asp是否在我们的网站上服务器。如果没有文件,则将它们重定向到old.website.com/oldpage.asp,其中存在我们旧网站的副本。

由于某种原因,只有/ oldsite /文件夹中的.htaccess文件正在执行。

这是我的站点root的.htaccess文件,用于检查新站点上是否存在该文件,如果没有重定向到/ oldsite /

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /oldsite/$1 [NC,QSA,L]

然后在/ oldsite /它应该检查文件是否再次存在,如果不再重定向。

RewriteEngine On
RewriteOptions inherit
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://old.website.com/$1 [R=301,NC,QSA,L]

1 个答案:

答案 0 :(得分:0)

你不需要2 .htaccess。

在网站root .htaccess:

中有此规则
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/oldsite/$1 -f
RewriteRule ^(.*)$ oldsite/$1 [NC,QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://old.website.com/$1 [R=301,L]

然后删除/oldsite/.htaccess并在清除浏览器缓存后对其进行测试。