提问人:David 提问时间:8/25/2023 最后编辑:MrWhiteDavid 更新时间:8/25/2023 访问量:32
URL 末尾的奇怪字符和 301 不会将它们重定向到正确的 URL
Strange Characters at end of URL and 301 wont redirect them to correct url
问:
以下奇怪的 URL 出现在 Google 控制台上......
我没有添加它们,也不知道它们来自哪里。
https://www.example.com/gallery.html?page=3
https://www.example.com/gallery.html?page=2
https://www.example.com/gallery.html?page=1
我的 301 重定向适用于其他页面,但不适用于上述这些 URL.htaccess
谁能帮我,我想将他们重定向到/gallery.html
添加到我的,适用于其他重定向.htaccess
RedirectMatch 301 /gallery.html?page=1 /gallery.html
答:
制作这些页面的软件已经消失了,不需要它了。我只想让页面正常运行
Gallery.html
(我假设你的意思是,根据你的例子?gallery.html
不能使用 mod_alias(或)指令匹配 URL 的查询字符串部分(第一个之后的所有内容)。该指令仅与 URL 路径匹配。但是,这也需要正则表达式,因此和是正则表达式中的特殊字符。?
RedirectMatch
Redirect
RedirectMatch
.
?
您需要改用mod_rewrite,并附加一个检查服务器变量的条件。QUERY_STRING
要重定向(其中是任何数字序列 0-9),那么您需要在文件顶部附近执行如下操作(指令的顺序很重要):/gallery.html?page=<number>
<number>
.htaccess
RewriteEngine On
# Redirect to remove "?page=" query string
RewriteCond %{QUERY_STRING} ^page=\d*$
RewriteRule ^gallery\.html$ /$0 [QSD,R=301,L]
反向引用包含模式的整个匹配项(即。"").$0
RewriteRule
gallery.html
子模式将数字 0-9 匹配零次或多次。\d*
(Query String Discard) 标志是从重定向响应中删除查询字符串所必需的。QSD
如果查询字符串中有任何其他 URL 参数,则不会发生重定向(因为正则表达式不匹配)。
首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。
旁白:
以下奇怪的 URL 出现在 Google 控制台上......
我确实设置了规范,但谷歌仍然给出错误“具有正确规范标签的替代页面”
我不确定你到底在哪里看到的?但这并不一定看起来像一个“错误”。(您的标签似乎已正确配置。rel="canonical"
Google 在您的域上搜索不会返回有问题的 URL,而只会返回 ,因此可能没有必要进行此重定向。site:
/gallery.html
评论
?page=<number>
rel="canonical"