【问题标题】:editing my .htaccess file after domain change to redirect old url to new url在域更改后编辑我的 .htaccess 文件以将旧网址重定向到新网址
【发布时间】:2021-04-04 19:07:49
【问题描述】:

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

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

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

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

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

我没有做我知道的作业。

这就是我所做的:

  • 直接在同一个 wordpress 网站上更改了 url
  • 在谷歌搜索控制台上提交了一个新的站点地图
  • 一些博文没有获得索引,因为他们显然将其视为重复内容
  • 停放旧域名

  • 2 个月后:

    • 仍然在我的旧博文中排名
    • 我的新索引仍然没有索引
    • 删除了停放的域名,看看它是否有所作为
    • 删除了旧域上的站点地图
    • 要求 google 请求索引

    它没有被索引,现在博客文章显然没有出现在我的网站上,因为我删除了停放的域。

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

    这是 siteground 的教程: 为确保使用您的新主域名,请首先按照本教程中所示停放以前的主域名,然后通过将此代码插入您的 public_html 文件夹中的 .htaccess 文件(您可以通过站点工具中的文件管理器修改/创建该文件):

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
    

    这是我的 .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
    

    任何建议将不胜感激。我确实在这里学到了教训。

    如果我能修复这个 .htaccess 文件,我显然会重新分配域名。

    谢谢!!!!!!

    【问题讨论】:

    • "...绝对没有办法 301 重定向任何东西!" - 为什么不呢?

    标签: wordpress apache .htaccess redirect file-manager


    【解决方案1】:

    您当前的 .htaccess 文件似乎没有任何问题,您只需要在您的.htaccess 文件。

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

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

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

    我假设规范方案和主机名是 HTTPS + www.newdomain.com

    上述所有请求 (.*) 的状态,其中请求的 Host 标头是 not (! 前缀) www.newdomain.com 然后重定向到 https://www.newdomain.com/&lt;urlpath&gt; - 在同一个 URL - 请求的路径。

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

    您应该先使用 302(临时)重定向对此进行测试,然后再更改为 301(永久)重定向以避免潜在的缓存问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 2013-10-16
      • 2016-11-22
      • 1970-01-01
      相关资源
      最近更新 更多