或者更好地说,除app.php
路径外,将所有内容重写为/public/
。我一直在寻找SO,但无法真正找到一个有效的解决方案。基本上我想要的是每个网址都会被路由到app.php / route,即使文件夹存在 - 除非已经为它做了例外。目前我只是为foo和bar获取403,但是它们应该被路由到app.php/foo
和app.php/bar
。另一方面,/public/
不应该被重写。
其他一些很酷,但并不重要的是,网址/app.php/
会被重写为app.php/app.php
。
在我的htaccess中我需要做些什么才能实现这种重写方式?
目录结构:
-| projects
-| SomeSite
-| foo
- .htaccess [deny from all]
-| bar
- .htaccess [deny from all]
-| public
-| css
-| js
-| img
- app.php
- .htaccess [mod_rewrite is here]
我目前的重写htaccess:
DirectoryIndex app.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !(/public|app\.php)$
RewriteRule ^(.*)$ app.php/$1 [QSA,L,NC]
答案 0 :(得分:0)
将您的代码更改为:
DirectoryIndex app.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_URI} !/(public|app\.php)(/.*|)$ [NC]
RewriteRule ^(.*)$ app.php/$1 [L]