2012-05-24 2 views
0

У меня есть структура каталогов, как этот.htaccess Перенаправление, если файл существует

/ub/ 
/ub/img/ 
/ub/inc/ 

В основном я хочу изменить свой img URL в это родительский каталог (ub),

Когда я получить доступ к http://localhost/ub/mypic.jpg

Первый , он должен проверить /ub/img/mypic.jpg, если существует, то получите этот файл и перейдите в браузер, если нет, то просто передайте его http://localhost/ub/index.php?img=mypic.jpg с INTERNAL REDIRECTION.

Во-вторых, index.php создаст mypic.jpg и сохранит его до /ub/img/, а затем передаст mypic.jpg в браузер.

Итак, является ли файл существует, или нет, браузер будет иметь http://localhost/ub/mypic.jpg только как URL

До сих пор, у меня есть это на моем файле .htaccess

Options +FollowSymLinks 
RewriteEngine on 

RewriteCond %{DOCUMENT_ROOT}/ub/img/$1 -f 
RewriteRule .+ /ub/img/$1 [L] 

У меня есть 2 дня до выяснить, решение, но это не похоже на работу,

Спасибо,

EDIT:

Эй, у меня есть это, просьба к http://localhost/ub/app/file.php уже передан index.php?uri=app/file.php, как я ожидал,

но запрос http://localhost/ub/img/mypic.jpg не передается index.php?uri=img/mypic.jpg. Есть ли решение?

Options -MultiViews +FollowSymLinks 
RewriteEngine On 
RewriteBase /ub/ 

RewriteCond %{REQUEST_URI} ([^/]+)$ 
RewriteCond %{DOCUMENT_ROOT}ub/img/%1 -f 
RewriteRule ^(.+)$ img/%1 [L] 

RewriteCond %{REQUEST_URI} ([^/]+)$ 
RewriteCond %{DOCUMENT_ROOT}ub/inc/%1 -f 
RewriteRule ^(.+)$ inc/%1 [L] 

RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L] 

ответ

0

Попробуйте что-то вроде этого (поместите его в .htaccess в папке/UB):

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase /ub/ 

RewriteCond %{REQUEST_URI} ([^/]+\.jpg)$ 
RewriteCond %{DOCUMENT_ROOT}/ub/img/%1 -f 
RewriteRule .+ - [L] 

RewriteRule ^(.*)$ index.php?img=$1 
+0

не работает ... :( –

+0

Можете ли вы определить, где она терпит неудачу или что не работает ? Ошибка синтаксиса? Неправильная перезапись? – Ansari

+0

ошибка внутреннего сервера –

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