提问人:John 提问时间:9/29/2023 最后编辑:John 更新时间:9/29/2023 访问量:21
从 URL 到达时,htaccess 无法重定向到子文件夹 Bing.Com
htaccess fails to redirect to subfolder when arriving from Bing.Com URL
问:
当我在 Bing.Com 中搜索相关页面(在我的 example.com 域上)时,单击显示该页面的 URL 在 Bing.Com 中包含以下基础长 URL:example.com/subfolder2/file.html
https://www.bing.com/ck/a?!&&p= .... a very long random code ... &ntb=1
我的服务器返回根 htaccess 中标识的内容。这意味着该搜索引擎缓存中的旧 URL 不会得到修复,并且用户会错过我的内容。missing.html
我的根目录上有一个 .htaccess 文件,目的是通过永久重定向来做这些事情
- 移至
example.com/subfolder/file.html
subfolder.example.com/file.html
- 移至
example.com
www.example.com
- 如果未指定文件,则返回“index.html”
大多数情况下,我在 example.com 的根目录中使用了这个.htaccess代码:
ErrorDocument 403 http://www.example.com/missing.html
ErrorDocument 404 http://www.example.com/missing.html
ErrorDocument 500 http://www.example.com/missing.html
AddHandler server-parsed .html .htm .shtml .shtm
Options +FollowSymLinks -Indexes -MultiViews +Includes
DirectoryIndex index.html
RewriteEngine On
RewriteBase /
#move to subdomains
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^/?subfolder1/(.*)$ http://subfolder1.example.com/$1 [R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^/?subfolder2/(.*)$ http://subfolder2.example.com/$1 [R=301]
#if missing sub-domain, add "www"
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
正如预期的那样,URL 工作正常,返回 .如果我在浏览器上输入,它也可以工作。www.example.com/subfolder/file.html
subfolder2.example.com/file.html
example.com/subfolder/file.html
我错过了什么?
注意:a)当我将htaccess代码添加到子文件夹时,它什么也没做;b) 我有 7 个不同的子域,每个子域都有自己的重写规则,而不是两个,所以我确信我在编写或执行重写时缺少一些效率;c) 我的服务器有HTTP服务;d) Bing 报告上的缓存版本为 ,并且;e) 我可能在谷歌搜索中遇到了同样的古怪结果,但它要么被冲走了,要么我无法复制/回忆起到底发生了什么。http://example.com/subfolder/file.html
谢谢!
答: 暂无答案
评论
(abc|def)
abc
def
RewriteRule ^/?(abc|def)/(.*)$ http://$1.example.com/$2 [R=301]