【发布时间】:2016-07-22 10:48:12
【问题描述】:
我的问题是当我单击链接 (domain.com/?brandID=1&name=Beretta) 时,如何在 RewriteRule 中显示 URL。
我的测试让我相信它可能与 index.php 有关,但也许不是。我的脚本由设置的 GET 变量触发,并查询数据库并包含显示结果的页面(以及“丑陋”的 url)。
这是 .htaccess 代码:
# Rewrite for ?brandID=1&name=Name
RewriteRule ^pistol-brand/([0-9]+)/([0-9a-zA-Z_-]+) ?brandID=$1&name=$2 [NC,L]
我想用 domain.com/pistol-brand/1/beretta 替换 domain.com/?brandID=1&name=Beretta
上面的代码显示了“丑陋”的 url,但是当我将 url 更改为 RewriteRule 状态(domain.com/pistol-brand/1/beretta)时,页面可以正常工作。
如何在点击链接时显示“新”网址?
感谢您的帮助。
【问题讨论】:
-
?brandID=$1&name=$2不是有效的 URL,您不能重写。 -
我也使用失败了:RewriteRule ^pistol-brand/([0-9]+)/([0-9a-zA-Z_-]+) index.php?brandID=$1&name= $2 [NC,L]
-
我不确定您是否了解 url 重写的工作原理。不要弄错了!只是想在这里防止很多挫败感。如果您单击这样的链接:
http :// domain.com/?brandID=1&name=Beretta,上述规则肯定不会做任何事情。您需要有一个这样的链接,然后单击它:http :// domain.com/pistol-brand/1/beretta。那么确实 url 重写应该 internally 重写该请求,以便您的脚本可以处理它。因此无需“更改”浏览器中显示的 url,因为它已经显示了“漂亮”的链接。
标签: php .htaccess mod-rewrite