2013-05-21 16 views
7

Ho un blog Wordpress in cui sto reindirizzando i post del blog dal mio vecchio blog ai miei nuova blog nel formato di seguito:uso delle espressioni regolari in .htaccess per 301 reindirizza

Il vecchio blog si chiama 'News 'e il nuovo blog viene semplicemente chiamato' Blog ': entrambi esistono nello stesso dominio in una sottodirectory come indicato di seguito.

OLD 'News' struttura blog

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

nuova struttura 'Blog' blog

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

Essenzialmente questo reindirizzamento ha la necessità di fare 2 cose: -

  1. Redirect a 'blog 'directory
  2. Conservare il nome del post nella stessa struttura ma rimuovi l'ultimo set di numeri alla fine dell'URL

Ho circa 900+ post di cui ho bisogno per impostare i reindirizzamenti per - so che potrei aggiungerli manualmente ognuno ma ci vorrebbe del tempo. Qualcuno potrebbe indicare se questo potrebbe utilizzare un'espressione regolare direttamente all'interno del file htaccess per minimizzare questo processo?

mio .htaccess attualmente si presenta così:

# 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 

risposta

14

Uso mod_alias:

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

o utilizzando mod_rewrite:

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

Grazie Jon io darò che una crepa - ho davvero ho bisogno di imparare RegExp :) – Zabs

+0

Questo funziona quasi - qualsiasi idea di come io faccia quanto segue: - Fai $ 1 return semplicemente: 'new-android-os' fare $ 2 Ritorna il resto '-3431' presumo avrei bisogno di iniziare in qualche modo l'espressione regolare a partire dalla fine della stringa e rimuovere l'ultimo numero intero. – Zabs

+0

Dopo aver controllato di nuovo la regex, dovrebbero funzionare entrambi (è stata una lunga giornata) Per qualche motivo - anche se so che l'espressione regolare è corretta (come per l'app RegExpr di gskinner) per qualche motivo Wordpress stesso lo reindirizza al blog 'blog' ma con il titolo del post esistente senza rimuovere l'ultima sezione con i numeri .. strano ?! – Zabs

Problemi correlati