2017-03-16 103 views
-1

我剛剛重新開發了我的一個網站。結構發生了變化,因此我需要全局重定向老的不存在的頁面,這些頁面目前仍然在Google上排名(50頁左右),以重定向到我的新網站的主頁使用301重定向重定向404將重定向現有頁面到主頁

結構已基本從頁面改變 - 例如:

www.website.com/page1.php www.website.com/page2.htm www.website.com/page3.php ......等等

www.website.com/page1/ www.website.com/page2/ www.website.com/page3/ ...等第

有點谷歌搜索後,我碰到這個solution來到SO

當我添加:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ./[L,R=301] 

.htaccess文件,重定向(在主頁)爲不存在的,網頁作品太好了!

但是現在我的新網站(存在)的導航/側面板中的每個鏈接也被重定向到主頁。所以我無法瀏覽我的網站!

因此,例如,當我點擊關於我們友情連接www.website.com/about-us/或任何其他的我的其他50頁(無論他們是什麼命名),301重定向解決方案上面不斷重新引導我的主頁(如如果這些頁面不存在)。

我想全局重定向老不存在仍是目前排名在谷歌(50頁左右)重定向到我的新網站的主頁 ...不是我的網站現有的鏈接的網頁。

這是爲什麼?我認爲使用301方法的404重定向只會針對不存在的頁面。

我做錯了什麼?

+0

編寫一個404頁面,並使用.htacess設置您的自定義404頁面,並在該頁面上設置重定向到您喜歡的任何頁面 –

+0

什麼是'about-us'?它是一個目錄還是一個文件,還是它「about-us.php」? –

+0

@OlafDietsche ...目錄文件「www.website.com/about-us /」,index.php是「/ about-us /'目錄中的默認頁面 – user3364730

回答

2

重定向/page.php/頁面,則可以使用以下命令:

RewriteEngine on 
RewriteCond %{ENV_REDIRECT_STATUS} !200 
RewriteRule ^(.+)\.php$ /$1 [L,R,NE] 

您可以R改爲以R = 301,使重定向永久。

+0

我想知道爲什麼我的新網站導航中的鏈接正在使用RewriteEngine解析/重定向到HOME頁面,其中的RewriteEngine位於 RewriteCond%{REQUEST_FILENAME}!-f RewriteRule。/[L,R = 301]' – user3364730

+0

這是由於您的規則,因爲它將所有文件重寫爲/,而現有文件重寫爲/。 – starkeen

+0

我也在談論全球重定向*任何*不存在的頁面(這仍然排在Google上)到我的主頁...不是1個特定的頁面。我真正的問題是,我現有的網站鏈接不工作(他們正在被視爲不存在 - 請看我的帖子) – user3364730

0

的規則如下

  1. 檢查about-us模式.匹配應用,是它。
  2. 檢查條件是否匹配,%{REQUEST_FILENAME} !-f。它是一個目錄,所以是的,它不是一個文件。
  3. 全部匹配 - >應用規則。

如果你不想目錄匹配,可以通過

RewriteCond %{REQUEST_FILENAME} !-d 

這麼說所以完全重寫規則是

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ./[L,R] 

當一切正常它應該,你可以用R=301permanent redirect)代替R從不R=301測試。