我无法在我的 .htaccess 文件中使用第二个重写规则
I can't get the second rewrite rule to work in my .htaccess file
我正在本地使用 wamp 服务器 (v2.5) Windows 7。我的项目中有一个用于主前端控制器的工作重写规则,如下所示:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/ [NC,L]
它成功地从查询中删除了 .php。从这个主前端控制器 index.php 我有一个 link 到另一个名为 theme.php 的前端控制器,其中我使用 menu links w/o the.php 文件扩展名,像这样:
theme/regions
代替
theme.php/regions
为此,我需要添加第二个重写规则来添加 php 扩展,如下所示:
RewriteRule ^theme($|/$) theme.php/ [NC,L]
我唯一得到的是一个 404 页面:-(。
如果能提供一些有关如何处理此问题的提示,我将不胜感激。
你的第二个 RewriteRule
独立于其他人工作,在你的问题中应该放在其他人之上。
此外,格式错误 - 您不需要捕获或附加任何内容。
RewriteRule ^theme/?$ theme.php [NC,L]
您需要将您的主题规则 放在 到 index.php
的一般路线之前。您需要参考 /theme/
之后的内容,例如:
RewriteRule ^theme(/?.*)$ theme.php [L]
此外,如果您启用了 Multiviews
,此规则将不起作用,但是,无论如何,这实际上非常适合 Multiviews
,因此您可以尝试启用它使用规则重写 theme
:
Options +Multiviews
我正在本地使用 wamp 服务器 (v2.5) Windows 7。我的项目中有一个用于主前端控制器的工作重写规则,如下所示:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/ [NC,L]
它成功地从查询中删除了 .php。从这个主前端控制器 index.php 我有一个 link 到另一个名为 theme.php 的前端控制器,其中我使用 menu links w/o the.php 文件扩展名,像这样:
theme/regions
代替
theme.php/regions
为此,我需要添加第二个重写规则来添加 php 扩展,如下所示:
RewriteRule ^theme($|/$) theme.php/ [NC,L]
我唯一得到的是一个 404 页面:-(。
如果能提供一些有关如何处理此问题的提示,我将不胜感激。
你的第二个 RewriteRule
独立于其他人工作,在你的问题中应该放在其他人之上。
此外,格式错误 - 您不需要捕获或附加任何内容。
RewriteRule ^theme/?$ theme.php [NC,L]
您需要将您的主题规则 放在 到 index.php
的一般路线之前。您需要参考 /theme/
之后的内容,例如:
RewriteRule ^theme(/?.*)$ theme.php [L]
此外,如果您启用了 Multiviews
,此规则将不起作用,但是,无论如何,这实际上非常适合 Multiviews
,因此您可以尝试启用它使用规则重写 theme
:
Options +Multiviews