我的客户在“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尝试打开这些文件时,循环变得疯狂。
这是一个例子: http://davidapuzzo.com/blog/?p=1821
如果您将“v1”添加到域的开头,您将看到帖子的实际位置:
http://v1.davidapuzzo.com/blog/?p=1821
我了解这将是301重定向,找到所有“http://domain.com/blog?p=page-id”网址并使用“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
我的客户有一些深度索引网址,您可以在上面看到康涅狄格州气象/气象学家。该帖子是搜索其姓名的第一页结果的第6个结果。
新网站今天推出,任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
尝试此规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^davidapuzzo.com
RewriteCond %{QUERY_STRING} ^p= [NC]
RewriteRule blog/(.*)$ http://v1.davidapuzzo.com/blog/ [L,R=301]
要将包含查询字符串的所有URL重定向到子域,请使用以下命令。这将重定向包含“?”的所有网址。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^davidapuzzo.com
RewriteCond %{QUERY_STRING} .
RewriteRule blog/(.*)$ http://v1.davidapuzzo.com/blog/ [L,R=301]