页面URL如何让增加参数就打不开

比如我的网址:https://www.baidu.com/
文章url为:https://www.baidu.com/article_show.php?id=111&title=acdefg
我用伪静态:RewriteRule ^article_show/([^/]+)/([^/]+) article_show.php?id=$1&title=$2[L]
文章url伪静态后为:https://www.baidu.com/article_show/111/acdefg

现在问题是,https://www.baidu.com/article_show/111/acdefg/www.ac.com/www.poo.com 也能打开 https://www.baidu.com/article_show/111/acdefg 这个页面;
如何让只要与 https://www.baidu.com/article_show/111/acdefg 这个链接不符合的就打不开这个页面

您可以通过在伪静态规则中添加结尾的字符 $,以确保 URL 只匹配指定的格式,而不是包含任意其他字符串的任意 URL。例如,您可以尝试以下伪静态规则:

RewriteRule ^article_show/(\d+)/([a-zA-Z]+)$ article_show.php?id=$1&title=$2 [L]

此规则将只匹配格式为 /article_show/数字/字母 的 URL,其中数字是 id 参数,字母是 title 参数。任何其他 URL 格式都将不匹配此规则。

你可以在代码中添加一个重定向的规则,如果URL不符合期望的格式,就重定向到期望的URL。例如,如果你希望只有 https://www.baidu.com/article_show/111/acdefg 能够打开文章页面,可以在服务器端配置一个重定向规则,将非期望的URL重定向到 https://www.baidu.com/article_show/111/acdefg%EF%BC%8C%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B%E5%A6%82%E4%B8%8B%EF%BC%9A



RewriteEngine On
RewriteCond %{REQUEST_URI} !^/article_show/111/acdefg [NC]
RewriteRule ^.*$ /article_show/111/acdefg [R=301,L]

这段代码将请求URL中不包含 /article_show/111/acdefg 的请求重定向到 https://www.baidu.com/article_show/111/acdefg,并且使用 HTTP 状态码 301(永久重定向)。你需要将这段代码添加到你的服务器配置文件中。