0

「#-」なしで同じ URL への書き換えルールを探しています。# は記事 ID であるため、特定の記事ごとに異なります。カテゴリー名も変わります。

www.site.com/foldername/categoryname/45-article<br>
www.site.com/foldername/categoryname/334-article<br>
www.site.com/foldername/anothercategoryname/634-article

使った...

RewriteEngine On<br>
RewriteRule ^(.*)/[\d]*-(.*)$ /$1/$2 [R=301,L]

これはすべてのフォルダ名とそのカテゴリでうまく機能しますが、私の問題は、特定のフォルダ名とそのフォルダ名内の各カテゴリでのみ機能する必要があることです。したがって、私が使用したものと同様のルールがあることを望んでいますが、特定のフォルダー名を指定します。この件についてご協力いただきありがとうございます。

4

1 に答える 1

1

フォルダ名と照合するだけです。フォルダー foo、bar、および baz のみを一致させたいとします。

RewriteRule ^(foo|bar|baz)/([^\/]+)/[\d]+-(.+)$ /$1/$2/$3 [R=301,L]
                  ^^^        ^^^    ^^^^^^
                   1          2        3

ここにあなた:

  1. 一致させたいフォルダサブセットに対して最初に一致させます
  2. 次に、それらのフォルダー内の任意のカテゴリに一致します
  3. 次に、数字を削除します

些細な問題:式が文字と一致することがわかっている場合 (たとえば、記事名のダッシュの後)、. の.+代わりに使用すると便利です.*。後者はゼロ文字に一致します。これは有効なユースケースではないので、許可しないのが最善だと思います。

于 2013-02-27T17:30:21.953 に答える