.htaccess让子域表现为主域

时间:2015-11-05 08:25:17

标签: apache .htaccess mod-rewrite

我想为一个主域名创建子域名。我不想拥有文件的副本,所以我尝试使用mod_rewrite解决它。

当我去submdomain.domain.com时,我想将页面xyz.html显示为带有所有图片的index.html。 mod重写应该在浏览器URL中保留地址为subdomain.domain.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^subdomain.domain.com
RewriteCond %{REQUEST_URI} !(index.html)
RewriteRule ^(.*) http://www.domain.com/$1 [P,L] 

RewriteCond %{HTTP_HOST} ^subdomain.domain.com
RewriteCond %{REQUEST_URI} index.html
RewriteRule index.html http://www.domain.com/xyz.html [P,L] 

这个.htaccess保存在根目录的子域中。不幸的是,它只能分开运作。上半场仅在下半场失踪时起作用,反之亦然。所以我能够重定向只显示xyz.html页面作为索引页面但没有图像,或者对所有子域文件进行重定向,但忽略xyz.html并使用主域index.html。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案

RewriteEngine On

RewriteCond %{HTTP_HOST} ^subdomain.domain.com
RewriteCond %{REQUEST_URI} index.html
RewriteRule index.html http://www.domain.com/myspecial-page.html [P,L] 

RewriteCond %{HTTP_HOST} ^subdomain.domain.com
RewriteRule ^([a-zA-Z0-9\.\-\_]+).html$ http://www.domain.com/$1.html [NC]

RewriteCond %{HTTP_HOST} ^subdomain.domain.com
RewriteRule ^images/([a-zA-Z0-9\.\-\_]+)$ http://www.domain.com/images/$1 [NC,P]

etc...for css, js

可以使用htaccess tester

测试规则