2013-05-21 25 views
7

Tôi có một blog Wordpress nơi tôi đang chuyển hướng bài đăng trên blog từ blog của tôi để blog mới của tôi trong định dạng dưới đây:Sử dụng biểu thức chính quy trong htaccess cho 301 chuyển hướng

Các blog cũ được gọi là 'Tin tức 'và blog mới chỉ được gọi là' Blog '- cả hai đều tồn tại trên cùng một tên miền trong thư mục con như được chỉ ra bên dưới.

OLD 'News' cấu trúc blog của

http://www.example.com/news/new-android-os-3431 

MỚI cấu trúc 'Blog Blog

http://www.example.com/blog/new-android-os 

Về cơ bản chuyển hướng này cần phải làm 2 việc: -

  1. Redirect để Blog 'thư mục
  2. Giữ lại tên bài đăng trong cùng một cấu trúc nhưng xóa tập hợp số cuối cùng ở cuối URL

Tôi có khoảng 900 bài đăng mà tôi cần phải thiết lập chuyển hướng - Tôi biết tôi có thể thêm thủ công mỗi lần nhưng điều này sẽ mất chút thời gian. Bất cứ ai có thể chỉ ra nếu điều này có thể được sử dụng một biểu thức chính quy trực tiếp trong tập tin htaccess để giảm thiểu quá trình này?

htaccess của tôi hiện trông như thế này:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /news/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /news/index.php [L] 
</IfModule> 
# END WordPress 

Trả lời

14

Sử dụng mod_alias:

RedirectMatch 301 ^/news/(.+?)(-[0-9]+)?$ /blog/$1 

hoặc sử dụng mod_rewrite:

RewriteEngine On 
RewriteRule ^news/(.+?)(-[0-9]+)?$ /blog/$1 [L,R=301] 
+0

Cảm ơn Jon tôi sẽ cung cấp cho rằng một vết nứt - Tôi thực sự cần phải tìm hiểu RegExp :) – Zabs

+0

Điều này gần như hoạt động - bất kỳ ý tưởng làm thế nào tôi làm như sau: - Make $ 1 trả lại chỉ: 'new-android-os' Làm cho $ 2 trả lại số còn lại '-3431' Tôi đoán tôi sẽ cần bằng cách nào đó bắt đầu regex từ cuối chuỗi và xóa số nguyên cuối cùng. – Zabs

+0

Khi suy nghĩ thứ 2 đã kiểm tra lại regex, cả hai đều phải làm việc (một ngày dài) Vì lý do nào đó - mặc dù tôi biết regex là chính xác (theo ứng dụng RegExpr của gskinner) vì lý do nào đó Wordpress tự chuyển hướng nó vào blog 'blog' nhưng với tiêu đề bài đăng hiện tại mà không xóa phần cuối cùng với các con số .. lạ ?! – Zabs

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