2011-07-05 107 views
1

我正嘗試使用querystring將所有(動態)子域重定向到頁面,但它給頁面未找到錯誤。 任何想法請參閱?例如,希望像.htaccess將子域重定向到父域中的頁面+查詢

http://foo.example.com 

重定向到

http://www.example.com/pagefile.php?member_id=foo 

如果它保留了子域網址格式我將不勝感激。

# Make PHP code look like other code types 
    AddType application/x-httpd-php .asp .py .pl 


    <Files php.ini> 
    order allow,deny 
    deny from all 
    </Files> 

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(\w+)\.mivasite\.com [NC] 
RewriteRule .* http://example.com/pagefile.php?member_id=$1 

回答

2

您正在混合rewritecond和rewriterule中的捕獲組。 RewriteCond中的匹配存儲在%1,%2等中,而$1,$2等等是來自RewriteRule的捕獲。

你沒有在RewriteRule中進行任何捕獲,所以$ 1將是空白的。試試做

RewriteRule .* http://mivasite.com/pagefile.php?member_id=%1 

改爲。當然,這可能不會解決你的404錯誤,因爲這隻會修復查詢參數。檢查你的服務器的錯誤日誌,看看究竟是哪個URL產生了404錯誤。

+0

現在,當您鍵入www.mivasite.com時,RewriteRule會發出500內部服務器錯誤。請任何人? –

+0

查看錯誤日誌。這將有500錯誤的原因。查看日誌文件應該始終是你做的第一件事。 –

+0

@Frank如果在規則的末尾添加[[R = 301,L]'標誌,它會有所作爲嗎? – LazyOne