这是我网站的架构:
/
app/
index.php
...
libs/
lib1/
file.php
lib2/
...
我需要通过此url访问index.php:domain.com/index.php
我试过了:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !(.*)app
RewriteRule ^(.*)$ app/$1 [L]
它有效,但在我的index.php中,我打电话给例如:
include('../libs/lib1/file.php');
它不起作用,因为此路径现在引用root ...
我再也无法访问domain.com/libs了,因为它正在寻找domain.com/app/libs。
我该怎么办?
答案 0 :(得分:1)
include()
不应该关心浏览器看到的路径。这应该基于服务器上的本地文件系统。但是您的规则 会影响对lib的直接访问,因此请尝试添加更多条件:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^app/
RewriteRule ^(.+)$ app/$1 [L]
RewriteRule ^$ app/index.php [L]
这使得对现有文件或内容的请求不会通过app文件夹进行路由。