我有一个博客页面,我希望我的网址像 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 不再接受任何参数呢?
$ 表示正则表达式测试字符串的结尾。将 $ 添加到规则,更改了行:
#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 匹配并且工作正常。