5

私は画像共有 Web サイトを持っており、以前は画像用のサブドメインを持っていましたが、それを削除する必要があったため、現在は画像への実際のパスを使用しています。

古い URL:

http://img.site.com/images/2013/03/abc.jpg

新しい URL:

http://site.com/files/images/2013/03/abc.jpg

これに関する問題は、古い URL をまだ使用している他の Web サイトや検索エンジンからリンクされた画像がたくさんあることです。

古いサブドメインの問題は、そのディレクトリ ( public_html/files) とその名前 ( img.) が異なることです。そのため、それを処理するために特別な構成が必要であり、それが引き起こしているすべての問題にうんざりしていました。

img.ディレクトリを指す通常のサブドメインを作成したpublic_html/imgので、追加の構成は必要ありませんが、画像はまだ public_html/filesディレクトリにあります。

私が今しなければならないことは、何らかの形で.htacessを使用して新しいディレクトリを古いディレクトリに置き換えることだけだと思います。これが可能かどうかはわかりません。

.htaccessは現在:

<IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /
    RewriteCond %{HTTP_HOST} ^img\.site\.com$ [NC]
    RewriteRule ^(images/.*)$ http://site.com/files/images/$1[R=301,NC,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{ENV:REDIRECT_STATUS} ^$

    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
</IfModule>

サブドメインから画像を呼び出そうとすると、次のようになります。

Not Found

The requested URL /files/images/2013/10/15c100d1da3216850d6cceb4ce57eaab6d26fc92.jpg was not found on this server.
img.site.com

私のエラーログレポート:

[Mon Oct 21 02:58:46 2013] [error] [client 85.185.229.221] script '/home/site/domains/site.com/public_html/img/index.php' not found or unable to stat
4

4 に答える 4

1

これを試してください:


RewriteEngine オン

RewriteCond %{HTTP_HOST} ^img\.your-domain\.com$ [NC]
RewriteRule ^images/(.*)$ /files/images/$1 [L,R=301]


于 2013-10-20T14:57:29.753 に答える
1

適切な場所にリダイレクトする必要があります。public_html/imgディレクトリの htaccess ファイルで次のようにします。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^img\.site\.com$ [NC]
RewriteRule ^images/(.*)$ http://site.com/files/images/$1 [L,R=301]

あるいは単に

Redirect 301 /images http://site.com/files/images
于 2013-10-17T03:26:43.430 に答える