【问题标题】:prerender.io .htaccess variable - Reactjs CRAprerender.io .htaccess 变量 - Reactjs CRA
【发布时间】:2021-06-08 02:36:50
【问题描述】:

我为 CRA 设置了 prerender.io,它运行良好,但是当机器人在没有参数的情况下点击 URL 时,它会放在 URL 的末尾 - 字符串“.var”

我尝试了 (.*) 的变体,但它似乎不起作用。有什么想法吗?

这里是 .htaccess 文件

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

<IfModule mod_headers.c>
    RequestHeader set X-Prerender-Token "TOKEN"
    RequestHeader set X-Prerender-Version "prerender-apache@2.0.0"
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    <IfModule mod_proxy_http.c>
        RewriteCond %{HTTP_USER_AGENT} googlebot|bingbot|yandex|baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest\/0\.|pinterestbot|slackbot|vkShare|W3C_Validator|whatsapp [NC,OR]
        RewriteCond %{QUERY_STRING} _escaped_fragment_
        RewriteCond %{REQUEST_URI} ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff|\.svg))

        RewriteRule ^(index\.html|index\.php)?(.*) https://service.prerender.io/%{REQUEST_SCHEME}://%{HTTP_HOST}/$2 [P,END]
    </IfModule>
</IfModule>

【问题讨论】:

    标签: reactjs .htaccess prerender cra


    【解决方案1】:

    最近@MrWhite 为我们提供了另一个更好、更简单的解决方案 - 只需将DirectoryIndex index.html 添加到 .htaccess 文件即可。


    从一开始我就写道DirectoryIndex 正在工作,但没有! 当您尝试 prerender.io 时,它似乎正在工作,但实际上它显示的网站是这样的:

    我不得不删除它。 所以 .htaccess 文件没有问题,它来自服务器。

    我所做的是进入 WHM->Apache Configurations->DirectoryIndex Priority 并看到了这个列表

    是的,就是这样!

    为了解决这个问题,我刚刚将index.html 移到了最上面的第二个是index.html.var,然后是其余的。

    我不知道index.html.var 是做什么用的,但我并没有冒险删除它。希望它可以帮助像我一样挣扎的人。

    【讨论】:

    • 使用不带任何参数的DirectoryIndex 是未记录的(according to the docs 不是严格有效的)。但是,该行为似乎与DirectoryIndex disabled 相同。 (尽管您似乎看到了“外部重定向”这一事实可能表明设置了DirectoryIndexRedirect on?这默认为off,并且可以在.htaccess 中设置为off。)
    • 你是对的我知道,我后来意识到,但我在他们的支持下来回走动,我还没有解决方案。等我有了它,我会更新这篇文章。谢谢
    • 感谢您的跟进。为了澄清......“我写了 DirectoryIndex 正在工作” - 你之前所做的完全禁用了DirectoryIndex。 “当您尝试 prerender.io 时,它似乎正在工作” - prerender.io 可能刚刚看到 200 OK 响应并认为它正在工作。您看到的输出(目录列表)是因为启用了Options Indexes(可能在服务器配置中),否则请求将导致 403 并且 prerender.io 可能会失败。 Indexes 不应启用。您应该在.htaccess 中设置Options +FollowSymLinks -Indexes
    • “所以 .htaccess 文件没有问题” - 虽然这可以使用 .htaccess 解决。您最终在服务器的 WHM 控制面板中所做的实际上与在 .htaccess 中设置 DirectoryIndex index.html 相同(覆盖服务器配置)。
    • @MrWhite 你是对的!只是我很挣扎,没有人可以帮助。我询问了 prerender.io 支持、网络托管支持,甚至没有人给我任何线索。所以最后我最终在 WHM 中做了这件事。感谢您提供 .htaccess 解决方案 :) 显然您可以提供帮助,但由于我缺乏经验,我什至无法很好地解释给别人理解...谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 2013-12-05
    • 2019-01-07
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多