2010-04-16 6 views
2

J'ai donc toute une série de redirections en place pour un ensemble de pages que je veux rediriger vers leur répertoire parent (par exemple/faq/question1/->/faq /), mais c'est très rigide car elles sont générées manuellement.Comment utiliser mod_rewrite pour rediriger les pages/répertoires enfants vers un répertoire parent?

Comment puis-je configurer un RewriteRule alimenté par RegEx? Je n'ai pas été capable de le comprendre, et aimerait chèrement quelques conseils. Voici l'ensemble de mon .htaccess, pour éviter tout conflit (vous pouvez voir la RewriteRules personne que j'ai en place en ce moment):

AddDefaultCharset utf-8 
AddHandler php5-script .php 
DirectoryIndex index.php 

ErrorDocument 403 /errors/forbidden.html 
ErrorDocument 500 /errors/internalerror.html 

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

# FAQ redirects 
RewriteRule ^faq/how-much-does-it-cost-to-make-an-albummix-a-songetc /faq/ [R=301,L] 
RewriteRule ^faq/im-a-singersongwriter-with-no-band-members-would-you-be-able-to-do-a-full-production-of-my-songs-with-session-musicians /faq/ [R=301,L] 
RewriteRule ^faq/do-you-do-postsound-for-film-at-all /faq/ [R=301,L] 
RewriteRule ^faq/i-have-a-home-studio-and-just-need-to-record-___-is-that-cool /faq/ [R=301,L] 
RewriteRule ^faq/are-you-a-publishing-company /faq/ [R=301,L] 
RewriteRule ^faq/do-you-need-any-interns-or-runners /faq/ [R=301,L] 
RewriteRule ^faq/can-i-bring-my-own-producerengineer-to-a-session /faq/ [R=301,L] 
RewriteRule ^faq/what-types-of-music-do-you-work-on /faq/ [R=301,L] 
RewriteRule ^faq/do-you-work-with-languages-other-than-english /faq/ [R=301,L] 
RewriteRule ^faq/do-you-guys-make-beats /faq/ [R=301,L] 
RewriteRule ^faq/i-have-an-old-tape-reelcasetteminidiscetc-and-would-love-to-transfer-it-to-some-other-form-can-you-help-out /faq/ [R=301,L] 
RewriteRule ^faq/i-have-my-own-producerengineeretc-and-just-need-help-working-out-a-budget-for-my-project-and-booking-studio-time-can-you-help-out /faq/ [R=301,L] 

# Recent Work redirects 
RewriteRule ^recent-work/josh-and-neal /recent-work/ [R=301,L] 
RewriteRule ^recent-work/midnights-son /recent-work/ [R=301,L] 
RewriteRule ^recent-work/bearkat /recent-work/ [R=301,L] 
RewriteRule ^recent-work/madi-diaz /recent-work/ [R=301,L] 
</IfModule> 

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

# END WordPress 

Répondre

5

Si vous souhaitez rediriger toutes les requêtes qui est des chemins d'URL ont /faq/ comme préfixe, vous peut utiliser cette règle:

RewriteRule ^faq/. /faq/ [R=301,L] 

Le . unique représente un caractère arbitraire. Ainsi, chaque requête dont le chemin d'URL commence par /faq/ suivie d'au moins un caractère est redirigée vers /faq/.

+0

Gumbo, merci beaucoup. Je me cognais la tête contre ça et ça me rendait fou. J'avais quelque chose de si proche de ça, mais ça provoquait une boucle de redirection avec/faq/lui-même. Toujours les choses simples ... – jeffbyrnes

+0

Recherché loin et large pour trouver cette solution, rien d'autre a fonctionné, merci !!! Life Saver :) – ByteMyPixel

Questions connexes