我真的很难理解mod_rewrite,并在创建RewriteRule以获得我们网站的简单网址时获得了一些帮助
RewriteRule ^news/([a-zA-Z0-9_-]+)$ /news/$1/ [R]
RewriteRule ^news/([a-zA-Z0-9_-]+)/$ news/show.php?id=$1
所以有人可以访问site.com/news/700/并且网址看起来与他们相同,但是将请求发送到我们的服务器并使用/news/show.php?=700将文章拉出来。
我想将文章的标题添加到网址中,只是为了让有人看到链接到我们网站时更加用户友好。
site.com/news/700/heres-our-important-title
有人可以让我知道我需要改变什么来实现这一点,以便代码仍能正常工作吗?所以一个url最后可以有额外的文本,但它仍然只会在/ news /后拉出id号。
感谢。
答案 0 :(得分:1)
您只需要更新第二个RewriteRule
以允许(可选)最后的标题。此外,作为一些管家,第一条规则需要修改,原因不相同:
RewriteRule ^news/([a-zA-Z0-9_-]+)$ /news/$1/ [R=301,L]
RewriteRule ^news/([a-zA-Z0-9_-]+)/.*$ news/show.php?id=$1
如果您的ID仅为数字,则将您的角色类[a-zA-Z0-9_-]
更改为[0-9]
也可能不是一个糟糕的主意,具体取决于您希望如何处理404。