我在FTP root上有两个文件夹。 site_v1
和site_v2
。 site_v2有新版本的网站,site_v1有旧版本。我想将我的域名指向site_v2
,即最新版本。所以我在root下创建了一个.htaccess。
RewriteCond %{HTTP_HOST} example.com
RewriteCond %{REQUEST_URI} !site_v2/
RewriteRule ^(.*)$ site_v2/$1 [L]
这很有效。当我打开http://example.com; site_v2无缝加载。
然后,对于site_v1,我创建了一个子域http://old.example.com并将其指向site_v1文件夹;运行http://old.example.com时出现此错误。
The requested URL /site_v1/site_v2/site_v1/index.html
was not found on this server.
我很无能为力。似乎http://old.example.com仍指向site_v2,因为root上的.htaccess。可能是什么解决方案,所以我可以强制old.example.com加载site_v1
?
答案 0 :(得分:3)
尝试将规则更改为:
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/site_v[0-9]/
RewriteRule ^(.*)$ /site_v2/$1 [L]
RewriteCond %{HTTP_HOST} ^old\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/site_v[0-9]/
RewriteRule ^(.*)$ /site_v1/$1 [L]
这样,与`%{HTTP_HOST} var匹配的主机不会重叠。