我的问题是我有一个正常运行的子域名(sub.mydomain.com)。 sub加载到mydomain.com/sub。
我想做的是将所有请求重定向到sub.mydomain.com到mydomain.com。
不知怎的,似乎当我在子域名时我无法访问rootfolder(主域名)。我可以从mydomain.com/sub到mydomain.com使用它。但不是来自子域。
目前即时使用:
RewriteEngine on
RewriteRule ^(.*)/?$ /home/web/webuser/$1 [L]
访问sub.mydomain.com时,我收到500内部服务器错误。
从sub访问main是否有限制? (权利明智) 或者也许是另一种获得主要的方式,也许像(../ $ 1)
由于
编辑: 我只能访问.htaccess。所以DocumentRoot不能在.htaccess文件中使用AFAIK。 符号链接怎么样?我真的不知道它做了什么,但我认为它链接了两个位置?我找到的唯一代码启用符号链接(选项+ FollowSymlinks) - 但这行没有说什么链接(也许我都错了)
顺便说一下。感谢到目前为止的输入!
答案 0 :(得分:1)
我必须承认我没有完全理解你的问题。你想将所有内容从sub.mydomain.com/whatever重定向到mydomain.com/whatever吗?在这种情况下,以下(放在sub.mydomain.com的配置文件中)可能有效:
RewriteEngine On
RewriteRule ^/(.*)$ http://mydomain.com/$1 [R,L]
它在客户端上重定向,这意味着用户将在浏览器中看到mydomain.com/sub。
因此,要解决您的问题,您需要更改sub.mydomain.com的DocumentRoot或创建一个允许您访问所需目录的符号链接(例如/ whatever / sub / redir-target - > / whatever )。但是,请注意符号链接选项,因为它将在您的文件系统上创建无限长度的有效目录(/ whatever / sub / redir-target / sub / redir-target / ...),而某些脚本无法应对。
EDIT2:您可能想要创建一个别名,而不是符号链接,例如:
Alias /redir-target /home/web/webuser
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/redir-target/.*$
RewriteRule ^/(.*)$ /redir-target/$1
不过,我认为最简单的解决方案是更改DocumentRoot ......
答案 1 :(得分:0)
为什么不尝试使用mod_alias的重定向指令?
答案 2 :(得分:0)
如果不了解有关服务器配置的更多信息,很难提供明确的答案。
以下可能有用,至少是一个不错的起点:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com
RewriteRule (.*) /$1 [L]
理想情况下,这将在您的httpd.conf中进行,但可能来自.htaccess文件(同样,有关如何设置子域的更多信息会有用)。