2016-08-08 10 views
0

私はマルチマスターのマゼンタのサイトマップを作成しようとしています。各ショップビューには独自のサイトマップがあります。したがって、私は達成しようとしている何htaccessの書き換え条件

サイトマップ/ store_en/sitemap.xmlと

サイトマップ/ store_de/sitemap.xmlと

サイトマップ/ store_nl/sitemap.xmlと

がにある私を作りましたmydomain.nl/sitemap.xmlのリクエストによりmydomain.nl/sitemap/store_nl/sitemap.xmlにリダイレクト

これは私のhtaccessファイルに入れました。しかし、これは機能しません。誰かが私が間違っているのを見ることができますか?

​​

私は別の書き換えルールを持っています。どのような影響があるのか​​わかりません...

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteCond %{REQUEST_URI} !(.*)\.(html|shtml|php)$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301] 

ありがとうございます!

+0

一見すると、そのルールは正常に見えます。あなたは '.htaccess'スタイルのファイルの解釈がまったく有効で、ファイルが正しく配置されていますか?次のステップは、書き換えログを有効にして、書き換えエンジン内の詳細な手順を確認することです。これは通常何が間違っているかを指摘する。 – arkascha

+0

あなたの助けてくれてありがとう!他の(最後の)書き換えルールが正常に機能しているので、ファイルが動作しています。書き換えログを有効にするにはどうすればよいですか?私はこれに慣れていないよ... –

+0

このような質問については、最初の一見_always_は公式文書になければならない。使用しているツールやユーティリティのドキュメントを参照せずにコードを作成することはできません! http://httpd.apache.org/docs/current/mod/mod_rewrite.html – arkascha

答えて

0

mod_rewriteのディレクティブは、上から下に読み込まれて処理されます。あなたの場合は、上にリダイレクトがあります。この規則は一致します(sitemap.xmlはファイルでもディレクトリでもなく、スラッシュ、html、shtml、phpで終わらない)。余分なスラッシュを追加し、要求をリダイレクトします。

/sitemap.xml/に新しいリクエストが送信されました。最初のルールは一致せず(スラッシュで終了)、2番目のルールは一致しません(要求はxmlで終了しませんが、xml/で終了します)。 404エラーが表示されます。

ルールを切り替えると、URL(/sitemap.xml)が最初のルールと照合され、一致します。これは今書き直されました。 2番目のパスでは、最初のルールは一致せず、2番目のルールは一致しません(有効なファイル)。

+0

明確な説明をいただきありがとうございます! :-) –