2010-01-06 62 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,除非該網址爲example.com/media/*在這種情況下,它將在./media/中查找所請求的文件。我想要重寫URL /media/*以查看project/media/*

使用重寫規則RewriteRule ^media/.* project/media [NC,L]會導致一切進入dispatch.php。

回答

0

解決方法可以找到here

0

您需要捕獲路徑並追加它。如:

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

我已經試過這個,它導致一切都被重寫到dispatch.php – 2010-01-06 08:31:20

0

嘗試下列規則:

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

這條規則不起作用。另外我想路由/媒體/目錄/項目/媒體。 – 2010-01-06 09:10:57

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}變量,但我無法得到它的工作。