2012-01-26 2 views
0

В настоящее время мой .htaccess файл выглядит следующим образом:упрощает мою HTAccess

RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule /album2 /galleries/album2 [QSA,L] 

RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule /album /galleries/album [QSA,L] 

RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^(.*\.exe)$ /slideshows/$1 [QSA,L] 

RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule (.*) /photos/$1 [QSA,L] 

Это кажется немного грязный для меня, потому что я повторяю эти проверки файлов и директорий много. Должен быть лучший способ сделать это.

То, что я пытаюсь выполнить, перенаправляется в разные папки в зависимости от того, существует ли файл или папка, запрашиваемая. Все используется в корневом каталоге сайта, но это становится неуправляемым. Я хотел бы, чтобы сценарий в основном проверял, существуют ли эти файлы или папки в нескольких разных каталогах, и если они это сделают, перенаправите его.

ответ

0

Все очищены и мяты на подушке :-)

RewriteCond %{ENV:REDIRECT_STATUS} 200 [OR] 
RewriteCond %{SCRIPT_FILENAME} -f [OR] 
RewriteCond %{SCRIPT_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule /album2 /galleries/album2 [L] 

RewriteRule /album /galleries/album [L] 

RewriteRule ^(.*\.exe)$ /slideshows/$1 [L] 

RewriteRule (.*) /photos/$1 [L] 
+0

прекрасно работает - еще одна вещь ... как я убедитесь, что файл я Перенаправление на существует. прямо сейчас, если я попытаюсь перейти к файлу, который не существует ни в одном из местоположений, я получаю ошибку 500, а не ошибку 404. благодаря! – zsalzbank

+1

попробуйте добавить 'RewriteCond% {ENV: REDIRECT_STATUS} 200 [OR]' вверху. – Gerben

+0

, который сработал - еще раз спасибо! – zsalzbank

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