2011-06-18 10 views
1

マイページのリダイレクトを処理しています。私はすべての古いURLと新しいURLのリストを持っています。301リダイレクトファイルでURLを消去する

古いURLが/directory/subdirectory/file.php

新しいURLがきれいなURL

/ディレクトリ/サブディレクトリ/ファイル/

されているいくつかの新しいURLはせずに、古いURLを一致させます".php"は他にはありません。

一つのWebページが示唆:

RedirectMatch 301 ^/sales/products/item$ /products/item-name/ 

しかし、私にリダイレクトループを与える以下のでしょうか?

RedirectMatch 301 ^/privacy-policy$ /privacy-policy/ 

私はまだ試していないが、困っていることを望んでいない。 Apacheのmod_rewriteのを使用して

答えて

0

- あなたの.htaccessファイルに次の行を追加します。

1)リダイレクト(301)*の.phpに "素敵" のURL:

# Activate Rewrite Engine 
RewriteEngine On 

# redirect *.php to "nice" url 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*)\.php$ $1/ [R=301,QSA] 

# process "nice" urls by looking for appropriate .php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ $1.php [L,QSA] 

これらのルールは、2つのことを行います。 directory/subdirectory/file.phpdirectory/subdirectory/file/

2)などの適切なURLを適切に提供します。 directory/subdirectory/file/directory/subdirectory/file.phpと扱われます。

P.S.リダイレクトが機能しない場合は(構成によっては時々発生することがあります)、$ 1より前にスラッシュを追加してください(例:/$1

+0

ありがとうございます。異なるURL名のページはどうですか? /directory/subdirectory/file.phpに/ new-url-name/ – dardub

+0

にリダイレクトする必要のある古いページがあります。これを行う方法はいくつかあります。最も簡単なもの(詳細によります)は、これらのURL専用の書き換えルールをさらに作成することです。このようなリダイレクトのおおよその数だけでなく、いくつかの例を挙げてください(=>から)。 – LazyOne

関連する問題