2010-01-06 7 views
0

У меня есть следующие правила перезаписи:Перенаправление/СМИ/* в/проект/СМИ/* и все остальное /dispatch.php

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/

    # Route requests to /media/* to /projects/media/* 
    RewriteRule ^media/.* - [NC,L] 

    # Route all URLs to dispatch.php. 
    RewriteRule ^(.*)$ dispatch.php [L] 
</IfModule> 

Это перенаправляет все, чтобы dispatch.php, если URL не example.com/media/* в этом случае он будет искать запрошенный файл в ./media/. Я бы хотел, чтобы URL /media/* был переписан для просмотра в project/media/*.

Использование правила перезаписи RewriteRule ^media/.* project/media [NC,L] приводит ко всему, что происходит в dispatch.php.

ответ

0

Вам нужно будет захватить путь и добавить его. Такие, как:

RewriteRule ^media/(.*)$ project/media/$1 [NC,L] 
+0

Я уже пробовал это, и это приводит к тому, что все будет переписано dispatch.php –

0

Попробуйте эти правила:

RewriteRule ^media/.* project/$0 [NC,L] 
RewriteRule !^project/ dispatch.php [L] 
+0

Это правило не работает. Также я хотел бы маршрутизировать/media/в каталог/проекты/медиа. –

0
RewriteEngine on 
RewriteBase/
# Route requests to /media/* to /projects/media/* 
RewriteRule ^media/(.*)$ project/media/$1 [L] 
# Route all URLs to dispatch.php. 
RewriteCond %{REQUEST_URI} !^/project/media/.* 
RewriteRule ^(.*)$ maintenance.php [L] 

Первоначально я хотел использовать специальную %{IS_SUBREQ} переменную, но я не мог заставить его работать.

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