【发布时间】:2018-08-29 09:54:41
【问题描述】:
我想按照以下模式重写 url
我现在的网址是:
xyz.com/news_details.php?id=120&title=hello-world
我希望 url 原样: xyz.com/hello-world
我还想在此页面上获取 id 的值,例如:
$id = $_REQUEST['id'];
请帮忙
我确实使用了以下代码:
RewriteCond %{THE_REQUEST} /news_details.php\?id=([^&\s]) [NC]
RewriteRule ^ /%2\.html? [NC,R,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-])\.html$ /news_details.php?id=$2 [QSA,L,NC]
【问题讨论】:
-
这不是永远循环并导致 508 错误吗?
-
@CD001: 可以做什么
-
不,您不能向客户端显示
xyz.com/hello-worldURL 并且仍然从请求中获取id参数。您必须查询数据库以获取id,否则您的 URL 为xyz.com/120/hello-world -
那么您要使用的 URL 是
xyz.com/hello-world,它在任何地方都不包含id=120。许多框架/应用程序所做的是将请求 URL 和 real URL 存储在数据库中,并使用路由脚本来获取所需的资源。
标签: php apache .htaccess url-rewriting url-routing