0

元のサーバーに数百のjpgのhttp://example.com/pic1.jpg、pic2.jpg、pic3.jpgなどがありますが、http: //example.com/に移動する必要があります。 pictures /pic[##]。jpg。多くの異なるサーバーとページがこれらの写真にリンクしているので、可能であれば、写真を移動してリンクを変更するだけではありません。Apacheの2番目のドキュメントルートとして別のディレクトリを含めることは可能ですか?

したがって、画像は実際には/pictures/pic1.jpgにありますが、/ pic1.jpgだけにリンクしても問題ありませんか?

編集:ルートに非常に多くの写真があることによる混乱のため、シンボリックリンクはしたくありません。

4

2 に答える 2

2

その名前のファイルがルートにない場合、ルート ディレクトリで .htaccess ファイルを使用して、すべての要求を pictures ディレクトリにリダイレクトできます。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /pictures/$1 [L]

主な質問について。いいえ、2 つのドキュメント ルートを持つことはできません (論理的な観点からも受け入れられません)。ただし、.htaccess ファイルを使用してリクエストをリダイレクトできます。

于 2013-01-30T20:31:19.480 に答える
0

httpd.conf ファイルのドキュメント ルートには、次のブロックがあります。

<Directory />
    Options FollowSymLinks
    AllowOverride None
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+) http://example.com/pictures%{REQUEST_URI}
</Directory>

したがって、 http://example.com/pic1.jpgにアクセスしようとして、それが存在しない場合は、http://example.com/pictures/pic1.jpgにリダイレクトされます。これは、REQUEST_URL に .jpg が含まれている場合にのみ実行するなど、より良くすることができますが、今のところはうまくいきます。

于 2013-01-31T04:19:23.960 に答える