.htaccess - 301 将所有内容重定向到新网站根目录/整个网站(包括子页面)?永久搬家

标签 .htaccess redirect mod-rewrite http-status-code-301

快速更新

好的,到达那里 这是 mod_alias 吗?

RedirectMatch 301 ^/ http://brightmist.co.uk/

我在所有内容下面添加了这一行代码,它似乎可以工作,但是我的其他目录,例如 http://brightmist.co.uk/blog/2013/02/23/manchester-art-gallery-feb-2013告诉谷歌这些页面已暂时移动 - 请参阅 http://www.internetofficer.com/seo-tool/redirect-check/

这是否意味着我必须正确浏览我的网站并添加重定向音?


原始问题

我有一个新网站。 我想重定向来自 http://artygirl.co.uk 的所有旧网站链接到我的新的http://brightmist.co.uk/

我主要是一名设计师,拥有多年主要使用 Photoshop、CSS、HTML、Wordpress 和 jQuery 的经验,但我不太了解编辑 htaccess 文件等内容。我不想弄错,因为这意味着谷歌排名下降等

有谁知道我可以粘贴到 htaccess 文件底部的任何脚本,我希望它将网站上的所有链接/页面重定向到与以前相同的位置。例如,如果我输入 http://artygirl.co.uk/buy-art-prints-cheshire/我希望它转到http://brightmist.co.uk/buy-art-prints-cheshire/我使用相同的主机,他们只是重新指向域名

除其他事项外,我的主机最近添加了以下代码,我认为这也与域映射有关,这也是我的整个 htaccess 文件 -

ErrorDocument 401 /forms/401.html
ErrorDocument 403 /forms/403.html

RewriteEngine On
RewriteBase /

#uploaded files
RewriteRule ^(.*/)?files/$ index.php [L]
RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteCond %{REQUEST_URI} ^.*/wp-admin$
RewriteRule ^(.+)$ $1/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

<IfModule mod_security.c>
<Files async-upload.php>
SecFilterEngine Off
SecFilterScanPOST Off
</Files>
</IfModule>

<Files 403.shtml>
order allow,deny
allow from all
</Files>

deny from 218.143.4.127
deny from 143.90.221.204
deny from 95.135.78.190
deny from 114.108.150.74
deny from 95.135.111.205
deny from 91.124.239.150
deny from 94.178.2.93
deny from 91.124.206.118
deny from 91.124.226.116
deny from 118.98.32.34
deny from 94.180.252.133
deny from 58.27.140.58
deny from 77.93.197.83
deny from 88.191.63.27

# Hotlink Protection START #

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?brightmist.co.uk [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

# Hotlink Protection END #

最佳答案

I'd like to redirect all of my old site links from http://artygirl.co.uk/ to my new one http://brightmist.co.uk/

有多种方法可以实现这一目标,所有这些方法都应该在 http://artygirl.co.uk/ 根目录中的一个 .htaccess 文件中实现。

无需检查传入域,因为它必须是 .htaccess 文件所在的 artygirl.co.uk

要使用以下任一选项,请将相应的指令或规则集复制粘贴到 http://artygirl.co.uk 中的一个 .htaccess 文件中> 根目录。


最快的是使用一个 mod_alias 指令的简单重定向:

Redirect 301 /  http://brightmist.co.uk/

传入 URL 中的任何路径都会自动附加到重定向 URL。


使用另一个 mod_alias 指令仅重定向某些路径:

RedirectMatch 301 ^/(.*)  http://brightmist.co.uk/$1

尽管此示例重定向了所有内容,但可以修改正则表达式 ^/(.*) 以仅匹配特定的 URL 路径模式。


使用 mod_rewrite 指令仅重定向某些路径:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)   http://brightmist.co.uk/$1  [R=301,NC,QSA,L]

与上一个选项一样,尽管此规则集会重定向所有内容,但可以修改正则表达式 ^(.*) 以仅匹配某些 URL 路径模式。


注释

  • http://artygirl.co.uk/ 中必须存在相同的目录结构和文件 http://brightmist.co.uk/以使之前的任何选项都有效。

  • 如果您问题中的实际 .htaccess 文件按预期工作,您可以在安装新 WP 的 http://brightmist.co.uk/ 根目录中使用它。不过可能需要一些修改。

  • 要移动或复制 WP 安装,请检查此链接 Changing the site URL .


更新:

从您评论中的这些句子到此答案:“我的域都指向同一目录...”和“...现在它创建了一个循环...”,也许问题是关于指向相同内容(网站)的域,通常称为停放域。

如果是这种情况,我不确定在 .htaccess 中将主域重定向到停放域是否是仅更改浏览器地址栏中的域名的正确方法。

但是,理论上,类似这样的事情应该使用 mod_rewrite 指令来完成:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}  artygirl\.co\.uk      [NC]
RewriteRule ^(.*)   http://brightmist.co.uk/$1  [R=301,NC,QSA,L]

将来自 http://artygirl.co.uk 的任何请求永久重定向到 http://brightmist.co.uk,并在以下情况下附加完整的传入路径和查询存在。

由于 .htaccess 文件也是共享的,我认为这个规则集应该放在问题中的 .htaccess 文件的顶部,替换以下行:

RewriteEngine On
RewriteBase /

关于.htaccess - 301 将所有内容重定向到新网站根目录/整个网站(包括子页面)?永久搬家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15167630/

相关文章:

apache - .htaccess 更改需要多长时间才能生效?

redirect - 谷歌分析 OAuth2 : How to solve error: "redirect_uri_mismatch"?

.htaccess - 站点地图中不再存在的页面需要重定向

.htaccess - 将所有 http 流量重定向到 https

django - htaccess 在 heroku 上用于 django 应用程序

.htaccess - 通过 .htaccess 中的 IP 范围限制 URL?

php - 使用 PHP 将 SEO 友好 URL 转换为动态 URL

php - 在 Controller 中将 HTTPS 重定向到 HTTP

regex - 如何在1and1共享主机上为Cake 2.3.x配置htaccess文件

apache - 特定的重写是如何工作的?