重写地址栏而不重定向

时间:2014-08-25 09:14:52

标签: apache .htaccess mod-rewrite

我在我所在大学的http服务器下有一个主机:university.com/~username

现在,我还有一个域名:mydomain.net与GoDaddy

我想知道是否可以拥有子域名: university.mydomain.net基本上重定向到 university.com/~username

现在,这里的诀窍是,如果我想访问 university.com/~username/subdir来自university.mydomain.net/subdir 浏览器中的地址栏显示:university.mydomain.net/subdir没有 如果我通过university.com/~usernameuniversity.mydomain.net

访问它,则无关紧要

在GoDaddy中使用永久重定向和屏蔽的问题,如果 我在dir university.mydomain.net/subdir并转到subsubdir university.mydomain.net/subdir/subsubdir然后浏览器仍显示university.mydomain.net/subdir

关于GoDaddy中的CNAME或其他类型的注册,我真的不知道 该怎么做(这是我的第一个域名),我甚至不知道我是否拥有这些权利 在我的大学服务器上有所作为。

我在.htaccess文件中尝试使用RewriteRule,但这总是试图 重定向(无论我使用什么标志)到university.mydomain.com/subdir 而我唯一想做的就是地址栏显示方向 没有遵循它。

我真的不知道这是否可能。对不起,如果这是一个愚蠢的 问题,我对领域和那些东西都很新。

1 个答案:

答案 0 :(得分:0)

CNAME下你需要添加子域名条目(在Godaddy DNS管理控制台中)

university.mydomain.net指向@

并且在您的主机中,@可能指向运行大学服务器的IP地址。

然后在你的apache vhost配置中,你需要有像

这样的重写规则
<VirtualHost *:80>
RewriteEngine on

RewriteCond %{HTTP_HOST} ^university.mydomain.net(:80)?$
RewriteRule ^/(.*) http://university.com/~username/$1  [P,QSA,L]

RewriteCond %{HTTP_HOST} ^university.com(:80)?$
RewriteRule ^/~username/(.*) http://university.mydomain.net/$1 [R=301,L]

</VirtualHost>