2016-03-14 27 views
0

我有一個像www.myverylongdomainname.com這樣的網站,它是我的主要網域,我也有一個www.myshorturl.com網站,它重定向到較長的網站,設置方式如下:用ServerAlias重定向並保留路徑

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    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結束/關鍵詞」。但我無法弄清楚當用戶被重定向到完整的URL時如何保留路徑。我做了一些谷歌搜索,但我甚至不知道使用什麼關鍵字。

+0

您是說Apache在重定向與ServerAlias完成時不保留路徑?有趣的是,我可以說我確信它的確如此。如果我錯了,那麼.htaccess(或VirtualHost中的目錄)和RewriteRule是你需要查找的。當我起牀時,我會首先檢查ServerAlias,對此我非常好奇,並且我會安全地設置ServerAlias,然後在閱讀您的問題之前忘記其餘部分 - 我仍然會這樣做,但我會明天再來確認。有什麼意思,如果它不這樣做... – smozgur

+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

我測試過,並確認了這種做法。

相關問題