2012-02-17 3 views
1

Пользователь запрашивает изображение PNG, скажем: http://server/myfolder/subfolder/1234.png. Если этого .png не существует, я хочу вместо этого указать .gif в той же папке с тем же именем, кроме расширения .gif, которое должно существовать..htaccess правило и 404 перенаправление

Другим дополнением является то, что мы недавно изменили структуру каталогов, поэтому URL-адрес, который мне нужно проверить, может быть изменен. Например, вышеприведенный URL-адрес должен быть достигнут, запросив либо напрямую, либо как http:// server/myfolder/subfolder/1234.png, либо по http://server/oldfolder/1234.png. Изменение в структуре каталогов может быть выражена как:

RewriteRule oldfolder/(.*) myfolder/subfolder/$1 [L,QSA] 

В обоих каталогах, мне нужно проверить, существует ли файл, и использовать другое изображение, а не в случае необходимости. Любая помощь будет принята с благодарностью.

ответ

2

Попробуйте добавить в файл .htaccess файл в корневом каталоге вашего сайта.

Он также должен работать с измененной структурой файла.

RewriteEngine on 
RewriteBase/

#if the file does not exist 
RewriteCond %{REQUEST_FILENAME} !-f 
#and is in any of these folders: /myfolder/subfolder or /folder1 or /folder2 
RewriteCond %{REQUEST_URI} ^/(myfolder/subfolder|folder1|folder2)/ [NC] 
#and its a png, then try to serve the gif instead 
RewriteRule ^(.+)\.png$ $1.gif [L,NC]  
+0

Не будет ли перенаправлять все изображения, хотя? Я хочу, чтобы он был активным в определенных подкаталогах, в любом другом случае я хочу, чтобы обычный 404, если изображение не существует. – user1216597

+0

@ user1216597 Он перенаправляет все .png изображения, которых не существует. Я отредактировал его только для конкретных папок. Вы можете изменить их в соответствии с нужными папками. –

Смежные вопросы