我在.htaccess上遇到了一些问题。我正在为我的项目使用 ZF1 并尝试实现以下方案。
-
http://project.local/user/event/index -
http://project.local/client-area/sample-event/en -
http://project.local/client-area/sample-event/en/register -
http://project.local/client-area/sample-event/en/detail
project.local 是一个指向公共目录的虚拟主机。第一个 url 直接从控制器提供,其中"user"是模块名称,"event"是控制器名称,对于其他 url,"client-area"是存在于 ZF1 公共目录中的目录,它包含 .htaccess 文件。它包含以下内容:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /user/event/detail/id/30 [NC,L]
当我尝试访问其他 url 时,它会将我重定向到默认模块的错误控制器,但我希望它从用户模块中的事件控制器提供内容。
请帮助解决此问题。
据我所知,所有请求都将发送到"/user/event/detail/id/30",我认为您正在寻找的内容更像是:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^$ /user/event/detail/id/30 [NC.L]
RewriteRule ^.*$ index.php [NC,L]
我还没有对此进行测试,我相信这实际上可以使用路由/设置默认路由在 ZF 中解决。