.htaccess 重写友好的 URL
Posted
技术标签:
【中文标题】.htaccess 重写友好的 URL【英文标题】:.htaccess rewrite friendly URLs 【发布时间】:2011-09-25 03:03:50 【问题描述】:我不确定这是否可行,但我希望将以下 URL 变得更友好:
http://www.myurl.com/content.php?id=13089093057550&slug=this-is-a-nice-url
我希望它看起来像这样:
http://www.myurl.com/this-is-a-nice-url
我该怎么做?
【问题讨论】:
【参考方案1】:您可以将slug
放入查询字符串中,但是如果不在某个地方提供id
,Apache 就不可能提供它。希望您有办法仅使用 URL slug 参数从数据库中获取 id。
RewriteEngine On
# We don't know the id
RewriteRule (.*)$ /content.php?slug=$1 [L,QSA]
【讨论】:
【参考方案2】:您需要将 id 传递给您的 PHP 代码才能显示我认为的内容。例如,查看此问题的 Stack Overflow URL:http://***.com/questions/6520671/htaccess-rewrite-friendly-urls
,它同时传递了 id
和 slug
。所以你可以有友好的 URL,比如:
http://www.myurl.com/13089093057550/this-is-a-nice-url
如果你决定按照我的建议去做,那么这里是你在 .htaccess 中需要的代码:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteRule ^([0-9]*)/(.*)/?$ /content.php?id=$1&slug=$2 [L,QSA]
【讨论】:
以上是关于.htaccess 重写友好的 URL的主要内容,如果未能解决你的问题,请参考以下文章
使用 php 和 .htaccess 进行友好的 url 重写。与 css 图像和 js 的相对链接的困难