0

次のパスを取得しようとしています。/faculty/index.php?PID=FirstLast&type=alpha

これに書き直すには:/faculty/FirstLast

以下を .htaccess に入れることが許容されると仮定するのは正しいですか?

# Rewrite old URLS
RewriteCond %{QUERY_STRING} ^PID=([0-9a-zA-Z]*)$
RewriteRule ^/faculty/index.php$ /faculty/%1 [R=302,L]

他のクエリ文字列変数を破棄しても問題ありません。これらのルールを .htaccess ファイル レベルで適用しています。このプロジェクトは、古いシステムから Drupal への移行です。

結果:

私の .htaccess は次のようになります

  # Rewrite old  URLS
  RewriteCond %{QUERY_STRING} PID=([0-9a-zA-Z]*)
  RewriteRule ^faculty/ /faculty/%1/? [R=301,L]

  RewriteCond %{QUERY_STRING} vidID=([0-9]*)
  RewriteRule ^videos/ /video/id/%1/? [R=301,L]

この素晴らしいツールも見つけました -- mod_rewrite テスター http://htaccess.madewithlove.be/

すべて良い!

4

1 に答える 1

1

代わりにこれを試してください:

RewriteRule ^faculty/index.php$ /faculty/%1? [R=302,L]

先頭のスラッシュは、ルールでテストされた URI パスにないため、正規表現にもありません。

ルールで新しいクエリが作成されない限り、クエリは置換 URL に自動的に追加される (変更されずに渡される) ため、ルールが使用されると、末尾の疑問符?によって既存のクエリ文字列が消去されます。

于 2013-04-16T00:07:50.783 に答える