我有一个博客页面,我希望自己的网址像www.example.com/blogs/something-new/17,所以我在.htaccess的下面写了几行
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)/$ $1.php
#SEO URL
RewriteRule ^blog/([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+) blog-details.php?blogs_slug=$1&blogs_id=$2 [L,QSA]
现在,当我进入example.com/blog/something-new/19时,一切都很好,但我可以继续这样写
example.com/blog/something-new/19/asdasfdsfas/asdasdsad
它仍然显示页面,所以我怎么告诉.htaccess不要接受更多的参数呢?
答案 0 :(得分:0)
$表示正则表达式测试字符串的结尾。将$添加到规则,更改行:
#SEO URL
RewriteRule ^blog/([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)$ blog-details.php?blogs_slug=$1&blogs_id=$2 [L,QSA]
然后该地址不匹配:example.com/blog/something-new/19/asdasfdsfas/asdasdsad但example.com/blog/something-new/19匹配并可以正常工作。