不确定如何重写 htacess 以包含 301 重定向......(多个 RewriteEngine on?

Unsure how to rewrite htacess to include 301 redirects... (Multiple RewriteEngine ons?)

提问人:John 提问时间:9/22/2023 最后编辑:John 更新时间:9/22/2023 访问量:12

问:

我在这方面非常新手,已经为其他网站使用了几次 301 重定向。这一次,该网站有一个现有的htaccess文件,其中包含一些“坏机器人”指令。下面是一个示例(这是一个 LOOOONG 机器人列表):

Options -Indexes
# BEGIN Refuse Bad Bot
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} ".*SemrushBot.*" [OR]
    RewriteCond %{HTTP_USER_AGENT} ".*AhrefsBot.*" [OR]
    RewriteCond %{HTTP_USER_AGENT} ".*ZyBorg.*"
    RewriteRule ".*" "-" [F]
</IfModule>
# END Refuse Bad Bot

我想保留它并添加 301 重定向。我是否应该添加另一个 RewriteEngine on(尤其是因为第一个 SEEM(对这个新手来说)位于不适用于我的 301 的 IF/THEN 语句中。

我想我应该做以下事情,但不确定这是否正确:

Options -Indexes
# BEGIN Refuse Bad Bot
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} ".*SemrushBot.*" [OR]
    RewriteCond %{HTTP_USER_AGENT} ".*AhrefsBot.*" [OR]
    RewriteCond %{HTTP_USER_AGENT} ".*ZyBorg.*"
    RewriteRule ".*" "-" [F]
</IfModule>
# END Refuse Bad Bot

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

Redirect 301 /old-page-1/ https://www.example.com/new-page-1/
Redirect 301 /old-page-2/ https://www.example.com/new-page-2/
Redirect 301 /old-page-3/ https://www.example.com/new-page-3/

任何帮助将不胜感激。

** 另外:我认为最好不要在 301(旧的或新的)末尾包含“/index.html”以获得更好的结果?我在某处没看错吗?

“我是设计师,不是程序员,吉姆!”

.htaccess http-状态代码-301

评论

0赞 CBroe 9/25/2023
将其包装起来只能防止 Apache 在 mod_rewrite 模块不可用时抛出错误,因此它不知道这些指令。但在这种情况下,现有代码和新代码都不会做任何事情。除非你想编写准备在多个不同的设置中运行的代码,否则一开始就使用它是多余的 - 如果你知道你的系统没有它就无法正常工作,那么你就必须在一个系统上运行它。<IfModule ...>

答: 暂无答案