mod_rewrite,只访问博客条目的URL的一部分

时间:2011-02-10 23:55:12

标签: apache mod-rewrite

在我参与过的其他网站中,我已经能够使用.htaccess中的以下内容轻松生成搜索引擎友好的URL:

<files entry>
ForceType application/x-httpd-php5
</files>

我正在开发一个由运行PHP作为快速CGI的公司托管的网站,但这不起作用。我正在尝试获取以下网址 - http://somewhere.com/blog/entry/12/this-is-the-title

我只是在寻找id(示例中为12)并且不一定需要标题(我的逻辑背后是标题可能被客户端更改,链接可能会被破坏)。我尝试了以下mod_rewrite但是如果我添加标题它不起作用:

    RewriteEngine on
    RewriteRule ^entry/([^/\.]+)/?$ index.php?id=$1 [L]

我以前从未使用过mod_rewrite,而且我遇到的很多文档都是关于实现更复杂的结果。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

如果.htaccess文件实际上放在/blog/.htaccess中,则需要RewriteBase /blog/行。

仅查找数字也有助于限制返回的ID。

RewriteRule ^blog/entry/([01-9]+)/?$ index.php?id=$1 [L]

这也会删除正则表达式的'/?$'部分。最后的'$'将匹配锚定到字符串的末尾 - 您只需要数字,并且可以忽略任何不是数字的内容。