7

我需要在 Windows 7 上安装 easyphp 时重写规则。

我需要确保规则正确加载,我不必创建大量规则。另外,当我将 .htaccess 复制到我的服务器(即 linux)时,我想确保它正常工作。

我没有这方面的经验,这就是我在互联网上发现的:

RewriteRule (.*) index.php?s=$1

现在,如果我有像“联系我们”这样的基本页面就可以了,但如果我有子页面就没有了。如何创建子文件夹?

谢谢你

4

1 回答 1

11

这是您需要做的:

RewriteEngine On
RewriteBase /
RewriteRule ^([a-z0-9_\-]+)/?$ index.php?main=$1 [NC,L] 
RewriteRule ^([a-z0-9_\-]+)/([a-z0-9_\-]+)/?$ index.php?main=$1&sub=$2 [NC,L]

这将允许您拥有如下页面:

http://www.domain.com/mainpage/ or
http://www.domain.com/mainpage or
http://www.domain.com/mainpage/subpage/ or
http://www.domain.com/mainpage/subpage

/?表示斜线是可选的

[NC]这使得测试不区分大小写 - 'AZ' 和 'az' 之间的差异在扩展的 TestString 和 CondPattern 中都被忽略。此标志仅对 TestString 和 CondPattern 之间的比较有效。它对文件系统和子请求检查没有影响。

[L] [L] 标志导致 mod_rewrite 停止处理规则集。在大多数情况下,这意味着如果规则匹配,则不会处理更多规则。

有关标志和规则的所有信息:http ://httpd.apache.org/docs/current/mod/mod_rewrite.html

于 2012-01-05T02:35:50.990 回答