1

古いメニュー項目を htaccess で新しい項目にリダイレクトしようとしています。それは動作しますが、私が望まないパラメータを追加します。コードは次のとおりです。

Redirect 301 /menu_cars_old.html http://www.domain.com/menu_cars_new.html
RewriteRule ^/?(menu_+[A-Za-z._-]+)$ index.php?menu=$1 [NC,L]

htaccessに詳しくないので教えてください。Redirect 301 ステートメントでうまくいくはずですが、私の書き換えルールと関係があると思います。

リダイレクトされたリンクはhttp://www.domain.com/menu_cars_new.html?menu=menu_cars_old.htmlのようになります。

に変更すると

Redirect 301 /menu_cars_old.html http://www.domain.com/?menu=menu_cars_new.html

それは機能しますが、URLにパラメーターは必要ありません。

4

2 に答える 2

1

mod_alias と mod_rewrite ルールを混在させないでください。これがあなたがそれを持っているべき方法です:

RewriteEngine On

RewriteRule ^/?menu_cars_old\.html$ http://www.domain.com/menu_cars_new.html [R=301,NC,L]
RewriteRule ^/?(menu_+[\w.-]+)$ index.php?menu=$1 [NC,L,QSA]

このコードを必ず配置してくださいDOCUMENT_ROOT/.htaccess

于 2013-10-06T15:14:19.383 に答える