3

SEO の目的で名前を変更したい一連の画像があります。しかし、私は 6,000 枚以上の画像を持っているので、.htaccess ファイルを簡単に書き直す必要があると考えました。

現在の画像は現在、次のパターンを使用して名前が付けられています。

http://www.mydomain.com/images/small/00005712.jpg

http://www.mydomain.com/images/medium/00005712.jpg

http://www.mydomain.com/images/large/00005712.jpg

次のような命名スキームでそれらを呼び出すことができるようにしたいと思います。

http://www.mydomain.com/5712s-keyword-phrase.jpg

http://www.mydomain.com/5712m-keyword-phrase.jpg

http://www.mydomain.com/5712l-keyword-phrase.jpg

これにより、表示を次のように変更できます。

<img src="http://www.mydomain.com/images/large/00005712.jpg" />

<img src="http://www.mydomain.com/5712l-keyword-phrase.jpg" />

この書き直しにより、php ファイルの img src 属性のパターンを単純に変更できるようになることを願っています。新しい名前を持つサイト全体の img src 属性は、実際には元の画像を画面に表示します。

すべてのファイル名には、左側に 0 が埋め込まれた 8 桁の数値名があります。

また、 http://www.mydomain.com/keyword-phrase-5712s.jpgのように、キーワード フレーズを左に、番号を末尾に付けてこれを行う方法を知っている場合は、さらに良くなります。

十分な詳細を提供していない場合は、明確にするために何ができるかお知らせください。この問題に関する助けをいただければ幸いです。

4

3 に答える 3

1

フォルダの名前を sm と l に変更すると、1 つのルールセットを使用できます

RewriteCond %{REQUEST_URI} (.*)\.jpg$
RewriteRule ^0*([1-9])(\d*)(s|m|l)(.*)$ /images/$3/$1$2.jpg

それ以外の場合は 3 が必要です

RewriteCond %{REQUEST_URI} (.*)\.jpg$
RewriteRule ^0*([1-9])(\d*)s(.*)$ /images/small/$1$2.jpg

RewriteCond %{REQUEST_URI} (.*)\.jpg$
RewriteRule ^0*([1-9])(\d*)m(.*)$ /images/medium/$1$2.jpg

RewriteCond %{REQUEST_URI} (.*)\.jpg$
RewriteRule ^0*([1-9])(\d*)l(.*)$ /images/large/$1$2.jpg 

編集

以下のコメントに従って、ファイル名の前にある SEO 用語を破棄するには、次を使用します。

RewriteRule ^.*(\d+)s\.(jpg|gif|png)$ /images/small/$1.$2
RewriteRule ^.*(\d+)m\.(jpg|gif|png)$ /images/medium/$1.$2
RewriteRule ^.*(\d+)l\.(jpg|gif|png)$ /images/large/$1.$2

先頭の .* は、画像の数字の前に先頭の文字をすべて破棄します。先頭のゼロがファイル URL に含まれるようになったため、(\d+) を使用して、(s|m|l) フォルダー インジケーターと画像ファイル拡張子の直前の 1 つ以上の数字を一致させることができます。

于 2012-08-01T05:56:39.823 に答える
0

元のパスに書き換えるシンボリック リンクをサーバーに作成できます。

参考リンクとして

于 2012-08-01T05:55:57.387 に答える
0

mod rewrite がインストールされ、サーバーで有効になっていることを確認する必要があります。

RewriteEngine On
RewriteRule *(\d{8})l\.(gif|jpg|png)$ /images/large/$1.jpg
RewriteRule *(\d{8})s\.(gif|jpg|png)$ /images/small/$1.jpg
RewriteRule *(\d{8})m\.(gif|jpg|png)$ /images/medium/$1.jpg

テストされていないので、そうするためにいくつかの編集を加えます。

*- URL の任意の先頭文字に一致

(\d{8})- 8桁のグループに一致

l- 一致large

\.- リテラルに一致.

(gif|jpg|png)gif-またはjpgまたは一致png

$- URL の最後に一致

すべてをまとめる:

フォームの任意の要求に一致します (これは、要求された「より良い」ソリューションでした)

http://www.mydomain.com/keyword-phrase-{ANY 8 DIGITS}.gif

http://www.mydomain.com/keyword-phrase-{ANY 8 DIGITS}.jpg

http://www.mydomain.com/keyword-phrase-{ANY 8 DIGITS}.png

ノート

私の場合は、先頭の 0 が埋め込まれていないため、前に空の 0 を含める必要があります。

于 2012-08-01T05:53:15.783 に答える