.htaccess设置为多个域提供服务

时间:2011-08-05 08:55:15

标签: .htaccess

我有两个指向同一文件夹位置的网站。它们通过不同的脚本提供。下面是我在.htaccess中插入的代码,以实现这一点。事情很好,除了一个问题......域名总是由提到的文件服务,即使资源可用 - 我无法访问图像,css,js文件夹等。

RewriteCond %{HTTP_HOST} xyz.com
RewriteRule ^(.*)$ xyz.php [QSA,L]

RewriteCond %{HTTP_HOST} pqr.com
RewriteRule ^(.*)$ pqr.php [QSA,L]

1 个答案:

答案 0 :(得分:0)

在域名规则之前添加这些行,例如:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

# do not do anything for already existing files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]

RewriteCond %{HTTP_HOST} =xyz.com
RewriteRule .* xyz.php [L]

RewriteCond %{HTTP_HOST} =pqr.com
RewriteRule .* pqr.php [L]

我也对你的规则做了一些小改动 - 它们的工作速度会快一些:

  • 如果您没有使用查询字符串进行操作,则无需QSA标志
  • 如果您没有计划捕获并使用目标网址
  • ,则无需^(.*)$
  • =xyz.com搜索完全匹配(快速简单字符串比较),而xyz.com使用更昂贵的正则表达式在域名中搜索此文本。显然,如果您有一些子域名也使用相同的代码(例如xyz.comwww.xyz.com),那么最好保留已经存在的内容。