我在Windows 7上使用wamp服务器(v2.5)在本地工作。我的项目中有一个主前端控制器的重写规则,如下所示:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1 [NC,L]
它成功地从查询中删除了.php。从这个主要的前端控制器 index.php 我有一个链接到另一个名为 theme.php 的前端控制器,我使用菜单链接没有.php文件扩展名,如这样:
theme/regions
代替
theme.php/regions
要实现这一点,我需要添加第二个重写规则来添加php exension,如下所示:
RewriteRule ^theme($|/$) theme.php/$1 [NC,L]
我唯一得到的是404页面: - (。
我会非常感谢有关如何解决这个问题的一些提示。
答案 0 :(得分:0)
您的第二个RewriteRule
独立于其他RewriteRule ^theme/?$ theme.php [NC,L]
工作,应该置于问题的其他位置之上。
此外,格式错误 - 您无需捕获或附加任何内容。
{{1}}
答案 1 :(得分:0)
您需要将主题规则放在一般路线之前index.php
。你需要引用/theme/
之后的内容,例如:
RewriteRule ^theme(/?.*)$ theme.php$1 [L]
此外,如果您启用了Multiviews
,此规则将无法正常工作,但是,这实际上非常适合Multiviews
,所以您可以尝试打开它而不是使用规则来重写theme
:
Options +Multiviews