2011-07-06 7 views
5

私は2つのスクリプトを持っています書き換えルールでこれを達成するために:htaccessの書き換えXMLサイトマップとユーザーフレンドリーなサイトマップ

リライト
座るsite.com/sitemap.phpしますここで

は、私が試したものである
site.com/sitemap.xmlをsite.com/xmlsitemap.phpする
site.com/sitemap/

リライトe.com/sitemap。問題は、sitemap.xmlをsitemap.php(GUI)に書き直すことです。

Options +FollowSymlinks 
RewriteEngine On 

RewriteRule sitemap.xml xmlsitemap.php 
RewriteRule sitemap sitemap.php 

# also tried using [L] option on both 
+0

何が問題なのですか? 1つのスクリプトに対して1回の書き換えを開始して、それを動作させましたか? – hakre

+0

sitemap.phpにsite.com/sitemap.xmlを書き換えますが間違っています。 sitemap.xmlはxmlsitemap.phpに書き換える必要があります。どちらのルールもコメントアウトされている場合は両方のルールが機能し、問題は一緒に機能しません。 – Chris

答えて

7

まず、[L]フラグを再追加してください。第二に、一つのルールが他に優先する場合は、全体の要求のように、彼らがより良いマッチング作るためにあなたの書き換えルールの正規表現をチェックしてください。

RewriteRule ^sitemap\.xml$ xmlsitemap.php [L] 
RewriteRule ^sitemap$ sitemap.php [L] 

Lフラグが1がすでにマッチした場合に追加のルールを実行するために防ぐことができます(まだトリガすることができます内部リダイレクト、END flag instead of the L flagも参照してください)。

+0

ありがとうございます。私はちょうどtrailing/site.com/sitemap/を収容する別のルールを追加しました – Chris