0

私は非常にユニークな問題を経験しています。誰かが助けてくれることを願っています!

そのため、最近新しい e コマース Web サイトを作成し、公開しました。すべてがうまく機能していましたが、古いページから 301 を実装すると、奇妙なことが起こりました。

したがって、以下のコードは実際に機能します

Redirect 301 /directory/ http://mysite.com/index.php?cat=1

このコードはしません

Redirect 301 /directory/sub_directory/ http://mysite.com/index.php?cat=2

このリダイレクトを実行しようとすると、「無効なパラメーターが指定されました!」という出力が表示されます。空白のWebページとアドレスバーにはこれがあります

http://mysite.com/index.php?cat=1/sub_directory/

おそらく問題は、古いページが動的であったためだと考えていましたが、mod_rewrite を使用してより読みやすい URL を作成し、新しいページのレンダリングを妨げていたため、古いファイルもすべて削除しました。

どんな助けでも大歓迎です!

ありがとう

4

1 に答える 1

0

リダイレクトはリストされた特定の URL にのみ一致する必要があるため、これは奇妙です.

次のように、より具体的なルールをより具体的でないルールの上に置いてみてください。

Redirect 301 /directory/sub_directory/ http://mysite.com/index.php?cat=2
Redirect 301 /directory/ http://mysite.com/index.php?cat=1

そうすれば、より具体的なルールが最初にヒットし、上記のより具体的な一致が失敗した場合にのみ /directory/ のみのルールが一致します

または、RewriteRules を試すこともできます。

RewriteRule ^directory/$ http://mysite.com/index.php?cat=1 [R=301,NC,L]
RewriteRule ^directory/sub_directory/$ http://mysite.com/index.php?cat=2 [R=301,NC,L]

^ および $ アンカーは、不要な部分一致を防ぐ必要があります

于 2012-09-28T19:30:41.747 に答える