0

我的应用程序目录下有两个目录

my_app:
  .htaccess
  lib:
    entry.php
  web:
    css:
      css_file1
      css_file2
    js:
      js_file1
      js_file2

我的网址将是这样的http://example.com/my_app/my_path

my_app目录下,有两个目录weblib

如果my_path可以映射到web目录下的任何文件,请使用它。

例如,http://example.com/my_app/css/css_file1应该映射到my_app/web/css/css_file1

否则将其重定向到lib/entry.php/my_path以便可以通过$_SERVER['PATH_INFO']访问 my_path重定向应该是内部的。重定向对用户不可见。

我想在.htaccess中编写配置来完成它。我编写了下面给出的代码。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule (.*) ../web/$1  
    RewriteCond web/%{REQUEST_FILENAME} !-f 
    RewriteCond web/%{REQUEST_FILENAME} !-d 
    RewriteRule (.*) lib/entry.php/$1 
</IfModule>

但我收到 403 错误。

4

1 回答 1

1

我相信以下内容应该适用于您,/var/www/.htaccess即直接在$DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{DOCUMENT_ROOT}/$1/web/$2 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/$1/web/$2 -d
RewriteRule ^([^/]+)/(.*)$ $1/web/$1 [L]

RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^([^/]+)/(.*)$ $1/lib/entry.php/$2 [L]
于 2012-11-01T15:43:05.740 回答