古い CMS を置き換えるために SocialEngine をインストールしました。問題は、検索エンジンに古い URL が多数存在することです。それらを現在の Web サイトの対応する URL にリダイレクトしたいと思います (現時点ではホームページにしかリダイレクトされないため)。
古い CMS のすべてのコンテンツが SE にインポートされたので、古いページにはそれぞれ同等のものがあります。例: 古いアドレス: /index.php?mod=news&ac=commentaires&id=367 新しいアドレス: /articles/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
前もって感謝します !
よろしくお願いします