2015-11-07 156 views
0

在谷歌網站管理員中找到我有550.000找不到頁面 - 404 - 我想對搜索頁面進行一些重定向。重定向404到搜索頁面

爲了給用戶是userfoul,需要去搜索頁面,但對我來說真的複雜,becouse我需要從404網址提取搜索短語:

這裏有2類型的網址404錯誤,需要重定向。

  • DOMAIN /電影/ 12298295 - 鐵 - 滿3

    DOMAIN /系列/ 15108-的行走 - 死海/季/ 3 /次/ 10

科西嘉中,我需要提取只是名字的電影,或者意甲,並重定向到該網址

  • d ?OMAIN /搜索Q =鐵人-3

    DOMAIN /搜Q =的行走 - 死海


嗯,這是部分的URL: 對於 「電影」 剛有4個部分:

  • 域 - 科西嘉的,是網站的域名

    /電影/ - 是基於續創建

    12298295- ENT類型(電影或系列)是該項目的ID,並且可以是形式 - 1 - 至 無限

    鐵曼-3 - 電影(的名稱wath欲獲得)

對於「系列」 - 同樣喜歡的電影,但最後能有更多的零件,以及完整的URL可以是:(所有這些網址,一個正常的頁面,沒有404,沒關係)

  • DOMAIN/serie/15108 - 行屍走肉/季節/ 3 /劇集/ 10 - 連結到劇集頁面

    DOMAIN/serie/15108-The-Walking-Dead/seasons/3/- 鏈接到某個季節

    DOMAIN /系列/ 15108-的行走 - 死海/ - 鏈接到首頁這個系列


請注意,我需要重定向這個網址,JUST如果結果是一個404頁面(ErrorDocument 404),因爲所有頁面都使用相同類型的URL。

這是我的實際。htacces

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 
    RewriteCond %{THE_REQUEST} /index\.php [NC] 
    RewriteRule ^(.*?)index\.php[^/] /$1? [L,R=301,NC,NE] 

    RewriteCond %{THE_REQUEST} /index\.php [NC] 
    RewriteRule ^(.*?)index\.php(?:/(.*))?$ /$1$2? [L,R=301,NC,NE] 

    RewriteCond %{QUERY_STRING} ^q= [NC] 
    RewriteRule ^busqueda\b /busquedas [R=301,L,QSA] 

    # Redirect Trailing Slashes... 
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
</IfModule> 

非常感謝您的幫助

回答

0

下應進行電影和一系列工作:

RewriteRule ^(?:movie|serie)/\d+-([^/]+) /search?q=$1 [R=301,L,NC] 
+0

NO - 這個規則全部重定向的URL與 - 電影|意甲,像我有告訴在這個問題中,許多其他類似的網址都可以,例如,DOMAIN/movie/123-title,可能會導致404,因爲此條目被刪除,但DOMAIN/movie/456-title沒問題,所以只需要重定向如果結果是404 – user5535624

+0

@ user5535624在上述情況下,404由腳本觸發。它需要由腳本本身處理。 Apache永遠不會知道電影/系列是否存在於數據庫中。 – hjpotter92