首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用mod_rewrite从子域重定向到主域

使用mod_rewrite从子域重定向到主域
EN

Stack Overflow用户
提问于 2009-11-09 07:02:01
回答 3查看 1.3K关注 0票数 1

我的问题是我有一个起作用的子域(sub.mydomain.com)。sub在mydomain.com/sub中加载。

我想要做的是将所有对sub.mydomain.com的请求重定向到mydomain.com。

不知何故,当我是子域时,我似乎不能访问根文件夹(主域)。从mydomain.com/sub到mydomain.com,我可以让它工作。但不是来自子域。

目前我使用的是:RewriteEngine on

RewriteRule ^(.*)/?$ /home/web/webuser/$1 [L]

当访问sub.mydomain.com时,我得到一个500内部服务器错误。

从潜水艇进入主管道有限制吗?(基于权限)或者可能是另一种到达main的方式,可能类似于(../$1)

谢谢

编辑:我只能访问.htaccess。因此在.htaccess文件中不能使用DocumentRoot。符号链接呢?我真的不知道它是做什么的,但我假设它连接两个地点?我找到的唯一启用符号链接(Options +FollowSymlink)的代码--但这一行没有说明要链接什么(也许我全错了)

顺便说一句。感谢你到目前为止的投入!

EN

Stack Overflow用户

发布于 2009-11-09 07:08:41

我必须承认我没有完全理解你的问题。你想把sub.mydomain.com/的所有内容都重定向到mydomain.com/吗?在这种情况下,以下内容(放在sub.mydomain.com的配置文件中)可能会起作用:

代码语言:javascript
运行
复制
    RewriteEngine On
    RewriteRule ^/(.*)$ http://mydomain.com/$1 [R,L]

它在客户端重定向,这意味着用户将在浏览器中看到mydomain.com/sub。

编辑:我想我现在明白你的问题了。是的,这是一个权限问题:如果您网站的DocumentRoot是/whatever/sub,那么您不能只通过添加"/..“来访问/whatever。添加到URL。我希望你能理解这是一件好事。:-) mod_rewrite只是更改URL,所以它也不能这样做。

因此,要解决您的问题,您需要更改sub.mydomain.com的目标,或者创建一个符号链接来允许您访问所需的目录(例如,/ DocumentRoot /sub/redir-target -> /whatever)。不过,要小心使用符号链接选项,因为它将在文件系统(/whatever/sub/redir-target/sub/redir-target/...)上创建无限长度的有效目录而有些脚本无法应对这种情况。

EDIT2:代替符号链接,您可能想要创建一个别名,例如,如下所示:

代码语言:javascript
运行
复制
Alias /redir-target /home/web/webuser

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/redir-target/.*$
RewriteRule ^/(.*)$ /redir-target/$1

不过,我认为最简单的解决方案是更改DocumentRoot...

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1698230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档