我有这样的应用程序入口点。
/app/index.php <-- this is the main dispatcher.
/ app /
下的应用程序特定文件夹/app/todo/
/app/calendar/
/app/bugtrack/
每个应用程序文件夹都包含特定于应用程序的文件。
我想传递app下的所有请求以通过/app/index.php。
那样。
/app/todo/list/today -> goes to /app/index.php
/app/ -> goes to /app/index.php
/app/bugtrack/anything/else goes to /app/index.php
在我的lighttpd测试机器上,我可以通过编写这样的规则轻松地完成它。
url.rewrite-once = (
"^\/app\/todo\/*" => "/app/index.php",
"^\/app\/calendar\/*" => "/app/index.php",
"^\/app\/bugtrack\/*" => "/app/index.php",
)
现在需要使用.htaccess和mod_rewrite使其在Apache上运行。
但无论我做什么,它都无法正常工作。
我在/app/.htaccess
中写了以下内容RewriteEngine on
RewriteRule .* index.php [QSA]
适用于/ app /和/ app / todo /,但例如/ app / todo / list /今天失败。
任何人都可以告诉我该怎么做?
答案 0 :(得分:1)
RewriteEngine On
RewriteBase /app
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
这样做的目的是,如果请求不是文件名或目录,请将其重写为index.php。然后查看$_SERVER[REQUEST_URI]
。