0

現在2つの要件があります

  1. /olddirectory/ を /newdirectory/ に書き換えます
  2. /newdirectory/pagename-3049103/ を /newdirectory/pagename/ に書き換えます

以下を使用してステップ#1を達成しました:

RewriteRule ^olddirectory/(.*)$ newdirectory/$1 [R=301,L]

ステップ 2 でサポートが必要

  • コンテンツは /newdirectory/pagename-3049103/ にあります
  • URL を消去して /newdirectory/pagename/ として表示したい

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

4

1 に答える 1

0

最初のルールでは、301 クライアント側リダイレクトを指定しました。これは必須ではなく、リクエストごとに 2 回目のクライアントとサーバーのラウンドトリップが発生するという副作用があります。ブラウザーが古いパス (つまり、site/olddirectory/xxx) を保持していてもかまわない場合は、次のように単純に書き換えることができます。

RewriteRule ^olddirectory/(.*)$ newdirectory/$1

また、[L] フラグを削除しました。これ以上の書き換えは行われないことを示しており、ページ名に対して少なくとも別の書き換えを行いたいと考えているからです。

pagename-3049103/ の末尾の数字が常に同じ場合は、次のようになります。

RewriteRule ^/newdirectory/pagename/?$ /newdirectory/pagename-3049103/ [L] 

しかし、ページ名はURLにあると思われるので、次のとおりです。

RewriteRule ^/newdirectory/$1/?$ /newdirectory/pagename-$1/ [L]

注: [L] フラグは計算される最後のルールであるため、追加できます。

于 2013-08-10T12:54:24.653 に答える