2017-03-21 109 views
1

我想重定向所有流量子目錄所以請求像那些:htaccess的 - 重定向所有流量到子文件夾

一個)http://localhost/app/index.php/app/ctrl
b)中http://localhost/app/media/image.jpg

將被重定向(不可見對於用戶):

一)http://localhost/app/public/index.php/app/ctrl
b)http://localhost/app/public/media/image.jpg

正如你可以看到我的app不是直接在根目錄下,而是在子目錄下。

這裏是我的文件結構:

/ 
    app/ 
     public/ 
      media/ 
       image.jpg 
      index.php 
     source/ 
     .htaccess 

    otherapp/ 

我在/app/.htaccess 工作IMO下面的代碼應該工作,不幸的是我得到找不到404

RewriteRule ^(.*)% "public/$1" 

的access.log :

::1 - - [21/Mar/2017:15:23:21 +0100] "GET /app/index.php/app/ctrl HTTP/1.1" 200 6681 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0"  
::1 - - [21/Mar/2017:15:23:30 +0100] "GET /app/media/image.jpg HTTP/1.1" 200 6681 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0" 

有什麼建議嗎?

回答

1

裏面app/.htaccess使用這樣的規則:

RewriteEngine On 

RewriteRule ^(?!public/).*$ public/$0 [L,NC] 

(?!public/)爲負先行檢查URI已經不/app/public/

+1

完美:)說明我完全忘了在我的解決方案重定向循環。 – l00k

相關問題