2016-01-26 4 views
0

Я переделываю сайт и меняю структуру каталогов. Вот набросок того, что у меня есть:.htaccess перенаправляет перенаправление только для изображений, из корневого каталога

Web root   <- This is the only location for the .htaccess file 
| + OldDir   <- To be deleted, but... 
| | + SubDir  <- ...all folders/images from OldDir to be moved to NewDir below 
| | | + 0001 
| | | | foo.gif 
| | | | bar.jpg 
| | | + 0002 
| | | + ...etc. 
| + NewDir   <- All images and folders from SubDir will be moved here 
| | + 0001 
| | | foo.gif 
| | | bar.jpg 
| | + 0002 
| | + ...etc. 

Примечание папки и их изображения будут в конечном итоге на один уровень выше в дереве каталогов. В основном, конечный результат заключается в том, что «SubDir» должен быть переименован и перемещен как прямая подкаталог веб-корня.

В случае, когда это актуально, все каталоги под «SubDir» следуют тому же правилу именования четырех числовых символов, как показано выше.

Обратите внимание: я могу поместить файл .htaccess в корень сети.

Уловка заключается в том, что я использую CMS, который будет использовать «виртуальные каталоги», один из которых будет называться «OldDir» (и фактически не может существовать). Поэтому я не могу просто захватить все в OldDir и перенаправить его на NewDir, поскольку текущие URL-адреса все еще будут существовать в CMS. Я должен получить только изображения.

Я не чужой .htaccess, но, видимо, мне недостаточно эксперта, чтобы объединить все эти факторы в рабочее правило перенаправления. По достоинству оценят любые мысли о том, что для этого нужно.

ответ

2

Простое правило для этого должно хватить:

RewriteRule ^OldDir/SubDir/(\d{4}/.+.(?:jpe?g|gif|png))$ /NewDir/$1 [R=301,L] 
+1

Спасибо, что работает лакомство! – Matthew

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