首页 > 解决方案 > .htaccess seo url rewrite问题与url end

问题描述

我有一个博客页面,我希望我的网址像 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 不接受更多的参数?

标签: php.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 匹配并且工作正常。


推荐阅读