2011-06-07 51 views
0

在ExpressionEngine中,將index.php保留在圖片之外的mod_rewrite目錄到子域的最佳方式是什麼?ExpressionEngine:mod_rewrite目錄到子域,同時刪除/index.php/

例如:

http://www.domain.com/index.php/group/template - > group.domain.com/template

我見過採取任何組,並將其改寫爲子域的變化,但我只需要一個。

我的任務是從不同的服務器(也運行EE)移植到子網站上。通常情況下,我只是將group.domain.com重定向到domain.com/group(index.php刪除已經在工作),但這被認爲是不可接受的解決方案。當然,這是時間敏感的。

我已經潛入Google和EE文檔/維基共享了十二個小時,並且我開始着眼於它。任何人都可以幫我一把嗎?

在此先感謝。

回答

1

這是我會怎麼製作這份.htaccess文件:

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{REQUEST_URI} ^/(group|group/.*)$ 
    RewriteRule ^(.*)$ http://group.domain.com/template/$1 [L] 

    RewriteCond %{REQUEST_METHOD} !=POST 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /index.php/$1 [L] 
</IfModule> 

此示例使用去除的URL index.php"File and Directory Check" Method和使用RewriteCond Directive指示Apache來處理請求的「組」目錄和所有其子目錄不同。

domain.com/group/template的任何鏈接將被重定向到group.domain.com/template/

如果你關心讓爬蟲知道你的內容感動,並希望使過渡儘可能無縫地,可以將301 Redirect添加到您的重寫規則:

RewriteCond %{REQUEST_URI} ^/(group|group/.*)$ 
    RewriteRule ^(.*)$ http://group.domain.com/template/$1 [R=301,L] 

這將確保用戶和搜索引擎被引導到正確的頁面。

+0

男人,看起來不錯...它似乎無限循環,但... – DWH 2011-06-09 12:22:52

+0

此外,在group.domain.com/中輸入只顯示來自默認組的數據,而不顯示組特定的頁面。 – DWH 2011-06-09 12:24:14

+0

我提供的代碼片段應放置在您的「domain.com」網站根目錄下的'.htaccess'文件中。如果您不小心將相同的代碼放到了「group.domain.com」網站的Apache的document_root中,則可能會解釋您遇到的無限循環。 – rjb 2011-06-13 14:49:36