gpt4 book ai didi

ajax - 我如何删除 ?_escaped_fragment_= 使用 .htaccess

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:33:38 25 4
gpt4 key购买 nike

Google 发现我允许最终用户使用 ajax 加载来浏览我的内容,并且将我的页面作为用户客户端加载,而不是在新页面加载时请求它们。因此,它不是尝试索引 www.mysite.com/page,而是请求 www.mysite.com/?_escaped_fragment_=/page

这根本不是我想要的。我的快照在与 ajax 加载内容相同的 URL 上提供。该网站没有使用查询,它不支持它们,我不想建立这种支持。这意味着所有页面在谷歌上看起来都已损坏,这当然很不幸!

目前,所有页面请求都使用 .htaccess 将请求重定向到服务器端,将请求发送到 index.php 文件,该文件在服务于客户端之前在服务器上编译 html 文档。该站点为所有页面提供完全有效且唯一的 html 文档。但是 google 坚持使用 ajax 方式并添加始终返回损坏页面的查询。

我不是 .htaccess 专家,但在我看来,解决这个问题的最简单方法是重写请求,删除 ?_escaped_fragment_=/位并将任何此类请求永久重定向到当前可用的内容使用正确的 url 加载页面。

有人知道我会怎么做吗?下面是我的 .htaccess 文件的当前重定向部分,需要使用 _escaped_fragment_ 剥离代码进行修改:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

#if trailing / remove it with a permanent redirect
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

#if missing www. add it with a permanent redirect
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

#requests for index.php never rewritten
RewriteRule ^index\.php$ - [L]

#if file or directory are missing, route to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

最佳答案

这就是我重写它的方式,以便所有 ?_escaped_fragment_=/XXXXX 请求都在没有查询的情况下重定向到/XXXXX

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%1? [L,R=301]

这使得 www.domain.com/?_escaped_fragment_=/somepage 重定向(永久)到 www.domain.com/somepage

...这正是我想要的。

关于ajax - 我如何删除 ?_escaped_fragment_= 使用 .htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30804675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com