0

我正在使用 .htaccess mod_rewite 指令并想要完成 2 件不同的事情:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?unit=/$1 [PT,L]

以上采用指定的 URL 并让我通过我的 index.php 引导页面引导它。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

以上使我的文件可以在没有 .php 扩展名的情况下显示。

使用它,我可以使用 url 指定一个文件/module/function/setting,它包括引导页面上要加载的路径[root]/module/function/setting.php

我需要将这两个动作组合成一个语句,有人可以帮忙吗?

4

1 回答 1

0

只需将第二条规则放在第一条之前:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^ %{REQUEST_URI}.php [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?unit=/$1 [PT,L]

所以 htaccess 会检查是否存在同名(不带扩展名)的脚本并执行。如果不是,您的当前规则将被执行。

于 2013-02-18T16:53:49.587 回答