2012-05-06 59 views
0

我安裝了SocialEngine以替換舊的CMS。問題在於搜索引擎中存在很多舊的URL。我想將它們重定向到當前網站上的相應網址(因爲目前它們只能重定向到首頁)。SocialEngine - 301重定向舊網站頁面.htaccess

我的舊CMS的所有內容都被導入到SE中,因此每個舊頁面現在都有相同的內容。 例如: 舊地址:/index.php?mod=news & AC =住客評論& ID = 367個 新地址:/用品/ 367

我想在我的.htaccess像添加:

redirectmatch 301 index.php?mod=news&ac=commentaires&id=([0-9]+) http://www.nailissima.fr/articles/$1 

但它不起作用。當我輸入舊地址時,它仍然會重定向到主頁,而不是相應的文章。

你能幫我解決嗎?

這裏是我的.htaccess:

# $Id: .htaccess 7539 2010-10-04 04:41:38Z john $ 

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine On 

    # Get rid of index.php 
    RewriteCond %{REQUEST_URI} /index\.php 
    RewriteRule (.*) index.php?rewrite=2 [L,QSA] 

    # Rewrite all directory-looking urls 
    RewriteCond %{REQUEST_URI} /$ 
    RewriteRule (.*) index.php?rewrite=1 [L,QSA] 

    # Try to route missing files 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} public\/ [OR] 
    RewriteCond %{REQUEST_FILENAME} \.(jpg|gif|png|ico|flv|htm|html|php|css|js)$ 
    RewriteRule . - [L] 

    # If the file doesn't exist, rewrite to index 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?rewrite=1 [L,QSA] 

</IfModule> 

# sends requests /index.php/path/to/module/ to "index.php" 
# AcceptPathInfo On 

# @todo This may not be effective in some cases 
FileETag Size 

預先感謝您!

致以問候

+0

你可以發佈你編輯的htaccess你添加規則的地方嗎? – Salman

回答

0

可能是您的重定向指令的順序有問題。

首先停用註釋您當前的所有常規規則,然後嘗試單獨使用新的重定向。

如果他們工作,然後仔細想想你應該把他們放在哪裏。

[L]在指令結束時使它最後一個,所以它這條指令匹配,不再進行處理。

使用此方法,先寫更詳細的說明,稍後再寫更詳細的說明,否則,當進一步的說明超出當前的範圍時,可以滿足情況!

+0

謝謝你的快速回答! 不幸的是我試圖禁用.htaccess的所有內容,並且只在第一行放置了redirectmatch代碼,即使這樣也行不通:網站上的很多菜單和鏈接都被打破了,但是當我輸入一箇舊地址,它仍然重定向到SocialEngine的主頁,而不是相應的新頁面:( – Myriam