0
Magento 1ストアに次の書き換えルールを実装する必要があります。param1
またはparam2
が含まれ、URIが/myfilter/
ではない場合、クエリ文字列を削除する必要があります。ここでApache rewrite + Magentoが正常に動作しない
は一例です。
www.mystore.com/myfilter/ --> www.mystore.com/myfilter/
www.mystore.com/myfilter/?param1=1 --> www.mystore.com/myfilter/param1=1
www.mystore.com/<something>/?param1=1 --> www.mystore.com/<something>/
www.mystore.com/<something>/?param2=2 --> www.mystore.com/<something>/
私は、.htaccessファイルに以下を追加しました:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/myfilter/?
RewriteCond %{QUERY_STRING} param1 [OR]
RewriteCond %{QUERY_STRING} param2
RewriteRule (.*) /$1? [R=301,L]
標準Magentoのは、リダイレクトする前に:
############################################
## always send 404 on missing files in these folders
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
############################################
## never rewrite for existing files, directories and links
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
############################################
## rewrite everything else to index.php
RewriteRule .* index.php [L]
をしかし、それは間違った方法で動作します。 これらのURLは仕事:
www.mystore.com/myfilter/ --> www.mystore.com/myfilter/
www.mystore.com/myfilter/?param3=1 --> www.mystore.com/myfilter/?param3=1
www.mystore.com/<something>/?param1=1 --> www.mystore.com/<something>/
www.mystore.com/<something>/?param2=2 --> www.mystore.com/<something>/
しかし、URIが/myfilter/
とparam1
またはparam2
のいずれかが含まれている場合、それは/index.php
に私をリダイレクトされます。
www.mystore.com/myfilter/?param1=1 --> www.mystore.com/index.php
私が何かを見逃していましたか?
もサーバーの障害に質問を投稿してください。 –
@ M.Garaこれは、サーバー障害に関するトピックではありません**です。 Server Faultの[How to Ask](https://serverfault.com/help/how-to-ask)を見てください。 –
これはサーバーの障害ではなく、私のローカルのApacheを含む、異なるサーバーで同じ動作を見ることができます。これは、Magentoの書き換えとApacheの両方に関連するものです。 – Dmitry