1

、など1057_1.jpgの名前の何千もの画像をアップロードするクライアントがいます。常に数字、アンダースコア、数字、およびオプションの文字です。CMS はこれらを使用して、関連するエントリにリンクします。1057_2.jpg1083_1H.jpg

SEO の理由から、これらの画像ファイル名には CMS から取得したキーワードを含める必要があります。したがって、それらは、たとえば、 になり1057_1-some-keywords-here.jpgます。.htaccess を使用して、ファイル名を同じに保ちながら .htaccess にリダイレクトする方法はあり1057_1-any-arbitrary-words.jpgます1057_1.jpgか? 基本的に、最初のダッシュからドットまですべてを削除するには?

助けてくれてありがとう - いつか htaccess をきちんと学ばなければならないのですが、今のところ簡単な解決策を見つける必要があります!

4

1 に答える 1

1

これを試すことができます:

RewriteEngine On
RewriteBase /
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /([^\-]+)-.+\.([^/]+)/?
RewriteRule .*    %1.%2     [R=301,L]

次のような URL を永久にリダイレクトします。

http://example.com/1057_1-anything.jpgまた

http://example.com/any/number/of/folders/1057_1-anything.jpg

に:

http://example.com/1057_1.jpgまた

http://example.com/any/number/of/folders/1057_1.jpg

URL パスの最後の文字列-anythingから効果的に削除します。

ルール セットが機能するには、イメージ名が URL パスの最後の文字列である必要があります。

サイレント マッピングの場合は、から削除R=301[R=301,L]ます。

アップデート:

anything名前の終わりと拡張子の始まりを決定するために使用されていたため、ピリオドは含まれていませんでした。anythingただし、前のコメントの OP 要件に従って、最後の期間を除く任意の数の期間も削除するようにルール セットを変更しました。

于 2013-02-04T19:16:26.400 に答える