2012-02-26 91 views
0

我的URL結構是目前如下:的.htaccess重寫同時更改域名,並刪除路徑

http://domain.com/folder/filename(電流)

我想,而不是改變,這樣我可以使用以下網址:

http://sub.domain.com/filename(NEW)

所以訪問當前新的URL,應該加載位於當前的URL文件,但顯示新的URL在一個地道酒吧。它只應用於「/ folder /」路徑。

sub.domain.com是domain.com的鏡像,即。他們共享相同的文件系統和根目錄。

這是我到目前爲止有:

Options +FollowSymLinks 
RewriteBase/

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC] 
RewriteCond %{REQUEST_URI} ^/folder/?(.*)$ [NC] 
RewriteRule ^(.*)$ http://sub.domain.com/$1 [R=301,L] 

這是工作,但缺少規則從路徑中刪除「/文件夾/」。我試過將多個RewriteRule組合起來,但沒有運氣。有任何想法嗎?謝謝。


UPDATE:再次感謝@Gerben - 我明白你的規則現在正在做的,但第二個是不是爲我工作。我懷疑,因爲它與其他一些重寫規則相沖突,特別是WordPress的,這是我的.htaccess文件低了下去:

# BEGIN WordPress 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
# END WordPress 

因爲這個頁面重定向循環,即結束了(從Chrome中): 「網頁http://sub.domain.com/folder/index.php導致了太多的重定向。」 - 而我最初試圖訪問的網址是,例如,http://sub.domain.com/page

任何想法?

+1

'RewriteRule^folder /(.*)$ http://sub.domain.com/$1 [R = 301,L]' – Gerben 2012-02-26 19:35:02

+0

Gerben - 謝謝,但像@ jon-lin的回答下面,這也是由此產生的結果在404中,因爲該文件實際上並不存在於http://sub.domain.com/ - 但我希望它看起來確實如此。如果.htaccess重寫不是這個問題的正確解決方案,那麼我願意接受其他想法。 – Damien 2012-02-28 13:02:09

回答

0

嘗試:

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC] 
RewriteRule ^(folder/)?(.*)$ http://sub.domain.com/$2 [R=301,L] 

這將重定向一切sub.domain.com,並刪除URI /folder一部分,如果它的存在。如果不是,它會重定向並保持URI不變。

+0

謝謝@ jon-lin。這只是部分工作。 重定向正在工作,即。 「http://domain.com/folder/filename」(CURRENT)重定向到「http://sub.domain.com/filename」(NEW)。 但是這會導致一個404,因爲在NEW URL的文件不存在。 CURRENT網址中的文件尚未移動。 這是一個URL重寫,而不是我需要的物理重定向。在瀏覽器中輸入新網址應該在CURRENT網址加載頁面,而不必更改地址欄中的網址。 – Damien 2012-02-28 12:56:52

0
RewriteCond %{THE_REQUEST} /folder/ 
RewriteRule ^folder/(.*)$ http://sub.domain.com/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/folder/ 
RewriteRule ^(.*)$ folder/$1 [L] 

# WordPress rules here 

編輯第二R=301不應該在那裏

但是,這是行不通的,因爲WordPress沒有知道你想要folder的方式。您可以將代理標誌添加到重寫中,但是您需要更改上面的規則以不重定向此內部代理請求。

+0

謝謝,我已在下面回覆(不能在評論中包含所需的格式) – Damien 2012-02-29 02:39:15

+0

我假設'文件夾'不是WP的一部分。見上面的編輯。 – Gerben 2012-02-29 11:54:02

+0

是'文件夾'是WP的一部分:父頁面。 – Damien 2012-02-29 12:32:59