我想让URL重写在我的网站上工作。这里是我的.htaccess的内容:Apache URL重写,
RewriteEngine On
RewriteRule ^blog/?$ index.php?page=blog [L]
RewriteRule ^about/?$ index.php?page=about [L]
RewriteRule ^portfolio/?$ index.php?page=portfolio [L]
#RewriteRule ^.*$ index.php?page=blog [L]
现在3条注释掉重写规则很好地工作,如果我尝试http://www.mysite.com/blog/,我重定向到http://www.mysite.com/index.php?page=blog,同为“约”和“组合”。但是,如果我输错博客,假设我尝试http://www.mysite.com/bloh/,那么很明显我会遇到404错误。评论的最后一条规则是帮助防止这种情况发生。任何URL都应该被重定向到博客,但是当然,即使我们已经成功地使用了前一个,这个规则仍然被解析,所以我使用了“last”标志([L])。如果我取消注释我的最后一条规则,则任何内容(包括博客,关于和投资组合)都将重定向到博客。一旦找到匹配规则,“last”标志不应该立即停止执行吗?
谢谢。
感谢您的回答。如果仔细观察,我当前的正则表达式已经考虑了可选的尾部斜杠。 – 2009-06-02 19:06:09
哦,是的。我没有看到。对不起:) – andi 2009-06-02 19:41:31