【发布时间】:2010-10-30 18:32:39
【问题描述】:
我正在尝试在我的网站上进行 URL 重写。这是我的 .htaccess 的内容:
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,“about”和“portfolio”也是如此。但是,如果我输入错误的博客,比如我尝试http://www.mysite.com/bloh/,那么显然我会收到 404 错误。评论中的最后一条规则是为了帮助防止这种情况发生。任何 URL 都应该被重定向到博客,当然,即使我们成功使用了之前的规则,这条规则仍然会被解析,所以我使用了“last”标志([L])。如果我取消注释我的最后一条规则,任何内容,包括博客、关于和投资组合,都会重定向到博客。 “last”标志不应该在找到匹配规则后立即停止执行吗?
谢谢。
【问题讨论】:
标签: apache .htaccess url-rewriting