簡體   English   中英

Apache和mod_rewrite:將域重定向到子目錄

[英]Apache and mod_rewrite: Redirect domain to subdirectory

(我知道這不是一個編程問題本身,但它涉及正則表達式,所以至少它是邊界...)

設置:

在Windows上使用mod_rewrite的Apache 2.0。 兩個域,我們稱之為domain1.example和domain2.example。 我想在同一台服務器(“server1”)上托管這兩個域,所以我將它們指向同一個IP地址。

現在,如果用戶在他的瀏覽器中鍵入“domain2.example”,我希望他最終位於服務器上的子目錄**中,但保留他輸入的域名(“domain2.example / domain2 /”)。 當然,重定向必須保留此域/目錄下的頁面上的所有絕對和相對鏈接。

這是可能的mod_rewrite(或Apache虛擬主機或其他方法),我該怎么做?

**在這種情況下,“子目錄”實際上不是磁盤上的文件夾,而是使用Apache“Location”指令創建的虛擬文件夾。

謝謝。

我假設您無法訪問Apache配置,否則,是的,虛擬主機是您的最佳選擇。 但是,如果不這樣做,可以將其放在.htaccess文件中,並且應該這樣做:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.yourwebsite\.com$
RewriteRule ^/(.*)$ /path/to/your/subdomains/%1/$1 [L]

因此,對http://foo.yourwebsite.com/bar的請求將轉至/path/to/your/subdomains/foo/bar

假設這些域是獨立的,建議的解決方案是虛擬主機。

您可以在apache網站上找到該文檔。

我不相信你需要使用mod_rewrite,你應該可以像你建議的那樣使用vhosts。 為此,您將擁有一個帶有servername domain2.example的vhost,它指向您想要的目錄。 這也將使用domain1.example的ServerAlias指令,因此對此請求將轉到同一目錄。

請參閱ServerAliasDocumentRoot的文檔 另請注意,如果您希望目錄顯示在URL中, 需要使用mod_rewrite。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM