2

快速更新

好的到达那里 这是 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 #
4

3 回答 3

5

我想将我所有的旧网站链接重定向http://artygirl.co.uk/到我的新网站http://brightmist.co.uk/

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

没有必要检查传入域,因为它必须是artygirl.co.uk.htaccess 文件所在的位置。

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


最快的是使用一个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 文件按预期工作,您可以在http://brightmist.co.uk/安装新 WP 的根目录中使用它。不过,可能需要一些修改。

  • 要移动或复制 WP 安装,请查看此链接更改站点 URL


更新:

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

如果是这种情况,我不确定将 .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.ukhttp://brightmist.co.uk,并在存在时附加完整的传入路径和查询。

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

RewriteEngine On
RewriteBase /
于 2013-03-06T05:12:29.173 回答
0

我看到了问题。它重定向根很好,但如果我去:

http://artygirl.co.uk/photography/

我想你想让它去

http://brightmist.co.uk/photography/

并不是

http://brightmist.co.uk/

就像现在一样。

众所周知,重写规则很难调试,但试试这个......

RewriteEngine On
RewriteBase  /
RewriteCond %{HTTP_HOST} !^brightmist\.co\.uk$ [NC]
RewriteRule ^(.*)$ http://brightmist.co.uk/$1 [R=301,L]

我知道这与 Matthew Camp 的回答非常相似。RewriteCond 对于避免无限循环非常重要,因为您从同一个文件夹交付两个域。您只想重定向不正确的那个。

根据服务器的配置方式以及更高级别存在哪些其他重写规则(您不可见但可能仍会影响您),可能还需要 Rewrite Base。尝试使用和不使用 RewriteBase。

我希望这有帮助。

于 2013-03-07T22:16:21.517 回答
0

他们是否重定向到同一个分机?应该是这样的:

RewriteEngine on 
RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L]
于 2013-03-01T22:14:40.027 回答