假设我希望用户能够在以下位置输入此网址:
www.website.com/blog/2453/I-gained-0.1%-more-scripting-knowledge-!
我正在尝试将标题信息包含在网址中以获取搜索引擎优惠。
我还想为我的查询添加一个ID。实际上,我想要获取id和忽略之后的标题内容,记住其用户生成的文本,因此可以包含任何特殊字符。
如何编写.htaccess重写规则,以便服务器使用适当的GET数据将其读取如下:
www.website.com/blog.php?id=2453
这就是我所尝试过的,但坦率地说,我在这里已经超出了我的深度:
RewriteRule ^blog/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ blog.php?id=$1 [NC,L]
答案 0 :(得分:1)
您使用的重写规则应该有效,但网址中的.
,%
和!
字符除外。 %
字符在URL中使用不安全,因为它在URL语法中具有特殊含义。我也不会使用感叹号。
如果ID始终为数字,请使用([0-9]+)
代替([A-Za-z0-9-]+)
。
试试这个网址:
www.website.com/blog/2453/I-gained-0.1-more-scripting-knowledge
遵守这条规则:
RewriteRule ^blog/([0-9]+)/[A-Za-z0-9\-\.]+/?$ blog.php?id=$1 [NC,L]