使用ServerAlias重定向并保留路径

时间:2016-03-14 00:07:29

标签: apache redirect virtualhost

我有一个像www.myverylongdomainname.com这样的网站,这是我的主要域名,我还有一个域名www.myshorturl.com,它重定向到更长的域名,设置如下:

<VirtualHost *:80>
    ServerAdmin blah@myverylongdomainname.com
    ServerName myverylongdomainname.com
    ServerAlias www.myverylongdomainname.com
    ServerAlias myshorturl.com
    ServerAlias www.myshorturl.com
    DocumentRoot /var/www/myverylongdomainname/public_html/dev
</VirtualHost>

我们使用短网址进行广告宣传,我希望能够将其放入平面广告中:“www.myshorturl.com/keyword”并让用户以“myverylongdomainname.com/keyword”结尾。但是当我将用户重定向到完整的URL时,我无法弄清楚如何保留路径。我做了一些谷歌搜索,但我甚至不确定使用什么关键字。

1 个答案:

答案 0 :(得分:0)

好的,我从朋友那里得到了帮助,但这是其他任何人的答案:

您无法使用ServerAlias保留路径(至少,我找不到方法)。解决方案是将myshorturl.com设置为自己的站点 - 设置自己的VirtualHost指向其自己的目录。在该目录中,使用以下代码添加.htaccess文件 - 该文件重定向到新URL并保留路径。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !myshorturl.com$ [NC]
RewriteRule ^(.*)$ http://myverylongdomainname.com/$1 [L,R=301]

上述代码的来源:How to 301 redirect an entire domain while preserving the path

我已经测试并证实了这种方法。