我的Wordpress网站的博文网址过去看起来像这样:
http://example.com/some-random-blog-post-name
http://example.com/other-random-blog-post-name
http://example.com/in-case-you-dont-get-the-point-theyre-all-different
在我的新Wordpress网站上,我希望他们住在他们所属的/ blog /子目录中:
http://example.com/blog/some-random-blog-post-name
关于这一点很棘手的是旧的URL没有遵循模式,所以我认为我需要匹配任何未被识别的东西。像这样的东西几乎可以运作......
# Redirect unmatched blog posts to /blog/*
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !blog
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteRule ^(.*)$ https://example.com/blog/$1 [L,R=301,NC]
</IfModule>
...但它与Wordpress自己的RewriteRules冲突,并打破了所有应该通过的其他网站页面。
那么我怎样才能实现以下目标:
example.com/some-random-post
301 - &gt; example.com/blog/some-random-post
example.com/another-random-post
301 - &gt; example.com/blog/another-random-post
example.com/contact/
- &gt; (没有重定向)
答案 0 :(得分:1)
在主题的404.php
(或404处理程序)中,您可以在文件的开头使用此代码段:
<?php
$url = $_SERVER['REQUEST_URI'];
if (stripos($url, "/blog/", 0) !== 0) {
header("Location: " . "/blog" . $url);
exit;
}
// rest of the 404 code
?>
答案 1 :(得分:0)
如果我是你,我会创建一个新文件&#39; blog&#34;在我的ftp上,我会剪切并粘贴所有旧的wordpress在这个新文件中。这样,您不需要在.htaccess中更改任何内容,重定向将在wordpress bo中自动完成。