2016-03-11 49 views
7
URL bài đăng blog

My Wordpress trang web của từng giống như thế này:Làm thế nào để chuyển hướng cũ Wordpress bài đăng trên blog url cho những người mới

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

Trên trang web Wordpress mới của tôi, tôi muốn họ sống trong một/blog/thư mục con, nơi họ thuộc về:

http://example.com/blog/some-random-blog-post-name

có gì khó khăn về vấn đề này là các URL cũ làm theo không có mô hình, vì vậy tôi nghĩ tôi cần phải phù hợp với bất cứ điều gì không được công nhận. Một cái gì đó như thế này hầu như hoạt động ...

# 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> 

... nhưng nó mâu thuẫn với RewriteRules riêng của Wordpress, và phá vỡ tất cả các trang trang web khác mà nên đi qua không thay đổi.

Vì vậy, làm thế nào tôi có thể đạt được như sau:

example.com/some-random-post 301 ->example.com/blog/some-random-post example.com/another-random-post 301 ->example.com/blog/another-random-post

example.com/contact/ -> (Không redirect)

+0

Mẫu URL nào sẽ được chuyển hướng đến '/ blog' và những gì không nên? – anubhava

+0

@anubhava Tôi nghĩ rằng nó đã được giải thích trong câu hỏi trên. Không có mẫu cụ thể cho các bài đăng trên blog cũ vì chúng không được thêm tiền tố với thư mục phụ. Vì vậy, về cơ bản chúng ta cần phải chuyển hướng bất cứ điều gì mà không phải là một trang Wordpress hiện có. – emersonthis

+0

Trong trường hợp đó mod_rewrite không phải là giải pháp. Nó cần phải được xử lý trong WP. – anubhava

Trả lời

1

Bên 404.php (hoặc 404 xử lý) chủ đề của bạn, bạn có thể sử dụng đoạn mã này ở đầu tệp:

<?php 

$url = $_SERVER['REQUEST_URI']; 

if (stripos($url, "/blog/", 0) !== 0) { 
    header("Location: " . "/blog" . $url); 
    exit; 
} 

// rest of the 404 code 
?> 
+0

Yea đây là những gì tôi đã suy nghĩ về quá ... Tôi biết nó sẽ làm việc để dính mã trong 404. php mẫu tập tin, nhưng tôi nghĩ rằng ti sẽ được sạch hơn nếu logic đó sống trong functions.php ... Bạn có biết là có một móc/bộ lọc cho 404 yêu cầu? – emersonthis

+0

Tôi không phải là chuyên gia WP thực sự. Có một hàm được gọi là 'is_404()' cho phép bạn sử dụng xử lý 404 này trong 'header.php' hoặc' index.php' – anubhava

0

Nếu tôi là bạn, tôi sẽ tạo một tập tin mới 'blog' trên ftp của tôi và tôi sẽ cắt và dán tất cả các wordpress cũ trong tập tin mới này. Bằng cách này, bạn không cần phải thay đổi bất cứ điều gì trong .htaccess, chuyển hướng sẽ được tự động thực hiện trong wordpress bo.

+2

Tôi không thực hiện theo những gì bạn đang đề xuất.Có thể xây dựng trên những gì được cho là xảy ra như là kết quả của việc này? – emersonthis

Các vấn đề liên quan