【发布时间】:2015-09-30 12:29:15
【问题描述】:
我有网站www.domain.com(服务器根目录位于/domain.com/web/),现在我创建了子域m.domain.com(服务器根目录位于/domain.com/sub/m/)。
我将 .htaccess 添加到子域根目录:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?m\.domain\.com$
RewriteCond %{REQUEST_URI} !^/m
RewriteRule ^(.*)$ ../../web/$1 [QSA,L]
但它显示的是Internal Server Error。
我试过了:
RewriteRule ^(.*)$ http://www.domain.com/$1 [QSA,L]
但这会将您重定向到主域。我需要留在子域,但内容与主域相同。
我也在这里查看了更多关于 SO 的解决方案,但没有一个有效。
编辑:
我尝试在 Apache 中设置另一个 VirtualHost:
DocumentRoot /domain.com/web
<Directory "/domain.com/web">
allow from all
Options None
</Directory>
ServerName m.domain.com
ServerAlias m.domain.com
现在主域和子域也显示 503 - Forbidden。
【问题讨论】:
-
你检查了你的 apache 的错误日志?
-
通常,错误显示在
error.log而不是access.log。您的access.log条目确认存在“内部服务器错误”(500)。 -
如果您希望两个域上的内容相同,为什么要使用单独的
DocumentRoots?您可以将两个根都设置为/domain.com/web/。 -
error_log 已禁用。现在显示的重定向太多了,所以它被循环不定式 -
Request exceeded the limit of 10 internal redirects due to probable configuration error. -
搜索重定向循环和环境变量
REDIRECT_STATUS,例如stackoverflow.com/q/13008782/1741542
标签: .htaccess mod-rewrite redirect subdomain