从简单的事情开始:
RewriteRule ^(.*)$ index.php?page=$1
如果我也想要以下工作:
RewriteRule ^/foo$ /index.php?page=foo #/foo IS a directory
这似乎只工作,如果R标志被设置,但然后完整的非漂亮的url被写入。 因此,似乎我可以REDIRECT现有的目录,但不能重写它们…也许与目录本身内的.htaccess? 或者在/foo/index.php中添加一些PHP魔法(如/index.php?page=foo)? 它会起作用吗? 它会被HTTP标准/search引擎优化?
请帮忙!
PS:我想到了最奇怪的想法:redirect/ foo到/ not-a-dir,然后重写/ not-a-dir到/index.php?p=foo应该在理论上工作…但是…来吧真的?!?
有一个选项mod_rewrite,使其处理目录,而不是传递给mod_dir:
RewriteOptions AllowNoSlash
在apache文档站点有更多关于这方面的信息。