我的应用程序目录下有两个目录
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 目录下,有两个目录 web 和 lib 。
如果 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错误。
答案 0 :(得分: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]