2013-07-30 262 views
0

我想在我工作的網站上設置一些別名。目前,這是我在本地主機上設置的僅限於前端的特定版本。我的問題來自於需要深入鏈接到頁面的特定部分。隨着用戶向下滾動頁面,URL通過JavaScript進行更新。Apache虛擬主機別名

例如,當我加載頁面我的網址是:local-www.blahblah.com/en-US/home.html

當我向下滾動頁面和某些元素映入眼簾的URL得到改變。例如,它可以成爲...

local-www.blahblah.com/en-US/category/title-1/

local-www.blahblah.com/en-US/category /標題-2/

我需要能夠做的就是去那個新的URL,或者通過刷新或直接輸入,並有彈出home.html的文件,同時保持完整的網址。

例如:我在local-www.blahblah.com/en-US/category/title/類型和它加載home.html的作爲URL。

我以爲我可以簡單地在我的虛擬主機配置中使用帶有通配符的別名來做到這一點,但這對我不起作用。

<VirtualHost *:80 *:82> 
    DocumentRoot "/Library/WebServer/blahblah.com/deploy" 
    ServerName local-www.blahblah.com 
    Alias /en-US/* /en-US/home.html 
</VirtualHost> 

我的Apache知識是初學者級別,所以在這裏的任何幫助將不勝感激。

回答

1

我認爲最好的辦法是使用mod_rewrite,首先關閉所有的,你需要啓用modrewrite。如果你使用Debian/Ubuntu的,你需要在該目錄下創建符號鏈接的/ etc/apache2的/

sudo ln -s ../mods-available/rewrite.load . 

而你在你的虛擬主機添加此配置啓用MODS-

RewriteEngine On 
RewriteRule ^/en-US/?(.*)$ /en-US/home.html [L] 

第一線啓用該模塊 我使用正則表達式來限制重寫規則:

^/EN-US = URL必須以/ EN-US
/? =的/是 可選
(。*)$ =任何字符,我用()來分組的內容,以便 它給你使用的變量,變量$ 1

這裏一個例子重用它的選項:

RewriteEngine On 
RewriteRule ^/en-US/?(.*)$ /en-US/home.php?Var=$1 [L] 
+0

完美!這似乎只是做我需要的。我以我對Alias的假設爲藉口。哈哈。回到我的前端!再次感謝。 – brandongray