2012-07-26 176 views
0

我試圖將舊域重定向到它的noew域,但有一些規則,我需要到位,到目前爲止我還沒有設法讓它很正確。Apache Mod重寫規則特殊條件

舊域名如www.old-domain.com有數百個文件夾名的英國城鎮,如在此之後:

www.old-domain.com/sheffield/ www.old-domain.com/london/ www.old-domain.com/essex/

每個這些文件夾內都包含一個index.html文件以及其他可能的directoreis和文件。

我需要將它們重定向到新域名,以便舊域/城市映射到新域/城鎮,但舊域/城鎮/ index.html不會將index.html放在新域名末端,但如果小鎮之後的路徑是index.html以外的任何地方,以便在新域中重定向到它。
對不起,這不是最容易解釋,也不是最簡單的閱讀和undeerstand我確定。

www.old-domain.com/sheffield => www.new-domain.com/sheffield

www.old-domain.com/sheffield/ => www.new-domain.com /謝菲爾德/

www.old-domain.com/sheffield/index.html => www.new-domain.com/sheffield/

www.old-domain.com/sheffield/main.html => www.new-domain.com/sheffield/main.html

www.old-domain.com/sheffield/innerFolder/ => www.new-domain.com/sheffield/innerFolder

www.old-domain.com/sheffield/innerFolder/file.php => www。 new-domain.com/sheffield/innerFolder/file.php

粗體兩個以上我設法得到這個工作:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^sheffield/(.*)$ http://www.new-domain.com/sheffield/$1 [R=301,L] 

但我真的努力讓old-domain.com/sheffield /index.html不在新域中放置.index.html。

任何人都可以擺脫任何光在這之前我拉着我的頭髮盯着mod重寫教程任何更多的小時?

回答

0

經過大約4-5小時的嘗試不同的梳理和閱讀上帝知道我設法到達那裏有多少rewriterule教程。下面是隻有3個位置的htacess文件,這些文件現在都很好用。

Options +FollowSymLinks 
RewriteEngine on 

RewriteRule ^sheffield\/index\.html http://www.new-domain.co.uk/sheffield/ [R=301,L] 
RewriteRule ^sheffield/(.*)$ http://www.new-domain.co.uk/sheffield/$1 [R=301,L] 

RewriteRule ^bolton\/index\.html http://www.new-domain.co.uk/bolton/ [R=301,L] 
RewriteRule ^bolton/(.*)$ http://www.new-domain.co.uk/bolton/$1 [R=301,L] 

RewriteRule ^coventry\/index\.html http://www.new-domain.co.uk/coventry/ [R=301,L] 
RewriteRule ^coventry/(.*)$ http://www.new-domain.co.uk/coventry/$1 [R=301,L] 
+1

除非你有一些目錄將被不同地轉發,我會試圖進一步簡化它: RewriteRule ^(。*)\/index \ .html http://www.new-domain.co。英國/ $ 1/[R = 301,L] RewriteRule ^(。*)$ http://www.new-domain.co.uk/$1 [R = 301,L] – 2012-07-27 09:53:51

+0

謝謝德國人。我看到你的邏輯。我不能在一分鐘內做到這一點,因爲我們並沒有一次性重定向所有的位置。這裏的博客對搜索引擎優化排名相當困擾,所以我們已經完成了大約3500個地點的10個地點。然而,當我們完全交換時,我一定會回來看看你的例子。感謝你的寶貴時間。 – azzy81 2012-08-01 15:34:18

2

提示:重寫規則在第一個匹配的基礎上進行處理。 你可以把你的例外主要規則

+0

感謝您的支持。 Mod Rewrite就像一個複雜的雷區。它與正則表達式一樣......只是大量複雜的規則和隨機的行話幾乎每次都需要很長時間才能獲得所需的確切模式。但是我確實已經完成了,下面是我所做的。 – azzy81 2012-07-27 09:36:21