2014-02-14 36 views

回答

2

URL重寫有可能。

在你的網站根目錄將這個在.htaccess文件:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(.*)\.autocosts\.org$ [NC] 
RewriteRule (.*) http://autocosts.org/index.php?c=%1 [L,QSA] 
</IfModule> 
+0

你能不能告訴我這個選項會做什麼?謝謝 – user3116402

+0

它會將子域上的所有調用轉發到主域index.php文件。更多關於這裏重寫http://httpd.apache.org/docs/2.0/misc/rewriteguide.html –

+0

謝謝你,我的朋友,它完美的工作:) – user3116402

2

域被存儲在HTTP_HOST指數$_SERVER 你可以嘗試的子域關聯此

$url = "http://autocosts.org/index.php?c=". 
$country = substr($_SERVER['HTTP_HOST'], 0,2); 
$url .= strtoupper($country); 
+0

如果你想將用戶重定向到那個URL,你可以使用'header(「Location:」。$ url);' – anurupr

+0

謝謝,儘管這個解決方案會產生一個悖論,例如這可能是可能的:de。 autocosts.org/index.php?c=PT – user3116402

+0

該網址是可能的。但如果代碼是在index.php中,它總是會重定向到'http://autocosts.org/index.php?c = DE' – anurupr

-1

你獲得通過做匹配uk.autocosts.org請求的內部重定向獲得這種效果。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^uk.autocosts.org$ 
RewriteRule ^.*$ %{REQUEST_URI}?c=UK [PT] 

但是,您必須小心使用具有查詢字符串的GET URL。如果您的GET URL包含查詢字符串,則需要進行特殊處理。

+0

這隻適用於'uk.autocosts.org ' – anurupr

+0

是的,這就是問題所在 - 仔細閱讀。它確實需要什麼。那有什麼問題? – RaviH

+0

我引用用戶。 '我管理一個網站,可以通過php變量訪問不同的國家版本。英國的例子。所以他想說的是,他對同一個網站有不同的域名。例如,來自英國的用戶可以使用'uk.autocosts.org'訪問該網站,來自印度的用戶可以使用'in.autocosts.org'等訪問該網站。因此,您的解決方案僅適用於域名'uk.autocosts.org',並且爲其他域應用相同的解決方案將失敗。 – anurupr