Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 301重定向旧的索引URL_Wordpress_.htaccess_Redirect_Http Status Code 301 - Fatal编程技术网

Wordpress 301重定向旧的索引URL

Wordpress 301重定向旧的索引URL,wordpress,.htaccess,redirect,http-status-code-301,Wordpress,.htaccess,Redirect,Http Status Code 301,我的客户在“domain.com/blog”上有一个wordpress博客,具有永久链接结构?p=page id。我把这个网站存档在“v1.domain.com”。一切正常 我在“domain.com/blog”上创建了新的wordpress博客,其永久链接结构为“/year/month/postname”。不过,一切都很好 我在谷歌上搜索了一下,找到了以前的博客帖子。它们链接到“domain.com/blog?p=page id”,当single.php试图打开这些文件时,循环会变得疯狂 以下

我的客户在“domain.com/blog”上有一个wordpress博客,具有永久链接结构?p=page id。我把这个网站存档在“v1.domain.com”。一切正常

我在“domain.com/blog”上创建了新的wordpress博客,其永久链接结构为“/year/month/postname”。不过,一切都很好

我在谷歌上搜索了一下,找到了以前的博客帖子。它们链接到“domain.com/blog?p=page id”,当single.php试图打开这些文件时,循环会变得疯狂

以下是一个例子:

如果将“v1”添加到域的开头,您将看到帖子的实际位置:

我知道这将是一个301重定向,找到所有“http://domain.com/blog?p=page-id“URL和重定向/在它们前面加上“v1.domain.com…”?我只是不知道如何编写reg表达式,以及在我的wordpress.htaccess文件中添加它的位置

我已将我的wordpress.htaccess包括在下面:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
我的客户有一些深度索引的URL,正如上面康涅狄格州气象员/气象学家所看到的。这篇文章是搜索他名字的第一页结果中的第六条

新网站于今日上线,如有任何帮助,我们将不胜感激。谢谢

试试这个规则:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^davidapuzzo.com
RewriteCond %{QUERY_STRING} ^p= [NC]
RewriteRule blog/(.*)$ http://v1.davidapuzzo.com/blog/ [L,R=301]
要将包含查询字符串的所有URL重定向到子域,请使用以下命令。这将重定向包含“?”的所有URL

RewriteEngine On
RewriteCond %{HTTP_HOST} ^davidapuzzo.com
RewriteCond %{QUERY_STRING} .
RewriteRule blog/(.*)$ http://v1.davidapuzzo.com/blog/ [L,R=301]

你到底想干什么?将任何带有?p=####的内容重定向到v1域?没错,jon。virendra下面更新的代码很好地解决了这个问题。你有没有其他的解决方案?我不确定如何改进代码?我刚刚意识到,代码中有一个错误,让我重写规则,直到您注释掉这些htaccess规则。必须将“v11”更改为“v1”,但现在正在工作。谢谢除了博客帖子之外,我还想重定向很多其他页面,所有页面的格式都是“”,其中[page]通常是[page_id=#]、[cat=#]、[p=#]。您提供的代码是否也有一个简单的更新来包含这些内容?此外,我已经通过robots.txt“禁止”——如果我301重定向所有旧的索引引用,它们最终会从排名中消失吗?好的,我将更新答案。是否要重定向/blog/中的任何内容或仅重定向特定URL?另外,你想重定向到吗?你将不得不允许机器人抓取你的新子域,否则,他们将无法对你的站点进行排名,最终可能导致删除该站点,尽管这不是必需的。