Wordpress 在域更改后编辑my.htaccess文件以将旧url重定向到新url

Wordpress 在域更改后编辑my.htaccess文件以将旧url重定向到新url,wordpress,apache,.htaccess,redirect,file-manager,Wordpress,Apache,.htaccess,Redirect,File Manager,有人能帮我处理.htaccess文件吗? 我把我的域名从olddomain.com改为newdomain.com,而没有建立一个完全不同的网站 我只是进去,更改了URL,在cpanel中修复了一些东西,然后停了域名,继续我的生活。这是一个新网站,所以我认为重定向并不重要,因为我没有得到任何流量 现在我超重要的博客文章是排名,但在我的旧网址上,绝对没有办法重定向任何东西 我尝试了插件,它基本上只给了我从我的新网址301重定向的选项 我知道我没有做作业 我就是这么做的: <IfModule m

有人能帮我处理.htaccess文件吗?

我把我的域名从olddomain.com改为newdomain.com,而没有建立一个完全不同的网站

我只是进去,更改了URL,在cpanel中修复了一些东西,然后停了域名,继续我的生活。这是一个新网站,所以我认为重定向并不重要,因为我没有得到任何流量

现在我超重要的博客文章是排名,但在我的旧网址上,绝对没有办法重定向任何东西

我尝试了插件,它基本上只给了我从我的新网址301重定向的选项

我知道我没有做作业

我就是这么做的:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# END HTTPS
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
  • 直接在同一wordpress站点上更改URL
  • 在谷歌搜索控制台上提交了一个新的站点地图
  • 一些博客文章并没有得到索引,因为他们显然将其视为重复内容
  • 已停止旧域

  • 2个月后:

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTP:X-Forwarded-Proto} !https
        RewriteCond %{HTTPS} off
        RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </IfModule>
    # END HTTPS
    # BEGIN WordPress
    # The directives (lines) between "BEGIN WordPress" and "END WordPress" are
    # dynamically generated, and should only be modified via WordPress filters.
    # Any changes to the directives between these markers will be overwritten.
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    
    • 仍然在我的旧博客上排名
    • 仍然没有在我的新的索引
    • 已删除已驻留的域,以查看它是否有影响
    • 已删除旧域上的站点地图
    • 要求谷歌请求索引
    它没有索引,现在的博客文章是没有来我的网站显然,因为我删除了停泊域

    我联系了siteground客户服务部,他们告诉我必须编辑.htaccess文件。通过他们的教程,它没有显示完全相同的代码行

    这是siteground的教程: 若要确保使用新的主域名,请首先按本教程所示停放上一个主域名,然后将此代码插入公用html文件夹中的.htaccess文件,将旧域名重定向到新域名(您可以通过站点工具中的文件管理器修改/创建该文件):

    这是我的.htaccess代码:

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTP:X-Forwarded-Proto} !https
        RewriteCond %{HTTPS} off
        RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </IfModule>
    # END HTTPS
    # BEGIN WordPress
    # The directives (lines) between "BEGIN WordPress" and "END WordPress" are
    # dynamically generated, and should only be modified via WordPress filters.
    # Any changes to the directives between these markers will be overwritten.
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    
    
    重新启动发动机
    重写cond%{HTTP:X-Forwarded-Proto}!https
    重写条件%{HTTPS}关闭
    重写规则^https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
    #结束HTTPS
    #开始WordPress
    #“开始WordPress”和“结束WordPress”之间的指令(行)为
    #动态生成,只能通过WordPress过滤器修改。
    #这些标记之间对指令的任何更改都将被覆盖。
    重新启动发动机
    重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
    重写基/
    重写规则^index\.php$-[L]
    重写cond%{REQUEST_FILENAME}-F
    重写cond%{REQUEST_FILENAME}-D
    重写规则/index.php[L]
    #结束WordPress
    
    如有任何建议,将不胜感激。我在这里确实学到了一课

    如果我能修复这个.htaccess文件,我显然会重新标记这个域


    谢谢

    当前的
    .htaccess
    文件似乎没有任何问题,您只需要在
    .htaccess
    文件顶部实现从旧域到新域的外部301重定向

    但是,假设主域和“停驻”域都指向同一站点(文件系统上的同一区域),那么您不能像Siteground教程所建议的那样简单地重定向,因为这将自然创建重定向循环-因为它无条件地将所有内容重定向到新域,包括对新域的请求!在重定向之前,您需要检查是否请求了旧域(或不是新域)

    仅在
    .htaccess
    文件顶部添加以下内容:

    RewriteCond %{HTTP_HOST} !^www\.newdomain\.com$
    RewriteRule (.*) https://www.newdomain.com/$1 [R=301,L]
    
    我假设规范方案和主机名是HTTPS+
    www.newdomain.com

    对于请求的
    主机
    头不是(
    前缀)
    www.newdomain.com
    的所有请求(
    *
    ),上述状态都将重定向到
    https://www.newdomain.com/
    -与请求的URL路径相同

    您需要确保WordPress是为新域配置的,并且所有内部链接都是使用新域构建的

    在更改为301(永久)重定向之前,应首先使用302(临时)重定向进行测试,以避免潜在的缓存问题


    您不需要重复
    RewriteEngine On
    指令。文件后面出现的
    RewriteEngine
    指令就足够了。

    “……而且绝对没有办法301重定向任何内容!”-为什么不呢?这使我的网站崩溃了。。