Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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 .htaccess文件完全匹配和不完全匹配_Wordpress_.htaccess_Mod Rewrite_Url Redirection - Fatal编程技术网

Wordpress .htaccess文件完全匹配和不完全匹配

Wordpress .htaccess文件完全匹配和不完全匹配,wordpress,.htaccess,mod-rewrite,url-redirection,Wordpress,.htaccess,Mod Rewrite,Url Redirection,我刚搬到WordPress网站。我曾经有一个静态站点和一个子域上的WordPress博客(blog.example.com)。我正在使用下面的代码,将我所有的博客文章重定向到我的新网站。有没有什么方法可以对主博客页面进行例外?具体地说,我需要下面的代码来应用于我的所有文章、类别等(已经存在),但我需要将我的旧博客主页(blog.example.com)重定向到我的新博客主页(example.com/blog)。非常清楚的是,我的帖子等没有在永久链接中使用blog <IfModule mod

我刚搬到WordPress网站。我曾经有一个静态站点和一个子域上的WordPress博客(
blog.example.com
)。我正在使用下面的代码,将我所有的博客文章重定向到我的新网站。有没有什么方法可以对主博客页面进行例外?具体地说,我需要下面的代码来应用于我的所有文章、类别等(已经存在),但我需要将我的旧博客主页(
blog.example.com
)重定向到我的新博客主页(
example.com/blog
)。非常清楚的是,我的帖子等没有在永久链接中使用
blog

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
</IfModule>

重新启动发动机
RewriteCond%{HTTP_HOST}^blog.example.com$[NC]
重写规则(.*)http://www.example.com/$1[R=301,L]
更新:谢谢,奥拉夫!用你的建议来解决这个问题。这是我的最终代码,供任何其他人寻找答案

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule ^$ http://www.example.com/blog [R=301,L]
RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
</IfModule>

重新启动发动机
RewriteCond%{HTTP_HOST}^blog.example.com$[NC]
重写规则^$http://www.example.com/blog [R=301,L]
RewriteCond%{HTTP_HOST}^blog.example.com$[NC]
重写规则(.*)http://www.example.com/$1[R=301,L]

将最具体的规则放在开头。在您的情况下,在现有规则前面加上主页的重定向

RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule ^$ http://www.example.com/blog [R,L]


当一切正常工作时,您可以将
R
替换为
R=301
。切勿使用进行测试。

记住在正则表达式中转义点以匹配文字点,而不是任何字符。例如,
^blog\.example\.com$
。或者,使用词典比较。例如
=blog.example.com