我希望能够使用.htaccess

时间:2015-09-28 13:13:32

标签: apache .htaccess mod-rewrite

我希望能够使用.htaccess

搜索两个子目录

我有以下目录结构

dir

我的问题是:

例如,当

上的请求时
resources/images/players_small_pigs/BMI10.png

正在接收,我希望能够在路径中搜索

webapp/public/resources/images/players_small_pigs/BMI10.png

是这里找不到的文件,我想继续搜索

webapp/adminpanel/resources/images/players_small_pigs/BMI10.png

有人可以通过使用.htaccess文件帮助我让它工作吗?整个文件夹结构资源,视图和Web服务的问题,我认为它可能是一个糟糕的结构,我可能应该将它们全部放在一个文件夹中,而不是将它分成一个adminpanel和公共文件夹,什么会你推荐吗?

我在.htaccess中有以下代码:

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^(resources/.*)$ /webapp/public/$1 [L]

RewriteRule ^(resources/.*)$ /webapp/adminpanel/$1 [L]

RewriteRule ^webservices/(.*)$ /webapp/public/webservices/$1 [L]
RewriteRule ^webservices/(.*)$ /webapp/adminpanel/webservices/$1 [L]

RewriteRule ^(public/resources/images/)(sponsors/)?(.*)$ /webapp/$1$2$3 [L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} adminpanel
RewriteRule (.*) /webapp/adminpanel/views/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !adminpanel
RewriteRule (.*) /webapp/public/views/$1 [L]

RewriteRule ^$ /webapp/public/views/index.php [L]

1 个答案:

答案 0 :(得分:0)

您可以尝试使用以下规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/resources
RewriteCond %{DOCUMENT_ROOT}/webapp/public%{REQUEST_URI} -f
RewriteRule ^ %{DOCUMENT_ROOT}/webapp/public%{REQUEST_URI} [L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/resources
RewriteCond %{DOCUMENT_ROOT}/webapp/adminpanel%{REQUEST_URI} -f
RewriteRule ^ %{DOCUMENT_ROOT}/webapp/adminpanel%{REQUEST_URI} [L]