2016-09-26 1 views
1

J'ai cherché partout, mais je n'arrive pas à le faire fonctionner.htaccess Custom Redirections ne fonctionne pas

Ce code fonctionne parfaitement:

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^/?artists/[\w-]+/([\w-]+)/([\w-]+)/?$ /dir1/artist.php?artist_id=$1&page_id=$1 [L,QSA,NC] 
RewriteRule ^/?tour/[\w-]+/([\w-]+)/?$ /dir2/index.php?artist_id=$1 [L,QSA,NC] 
RewriteRule ^/?video/[\w-]+/([\w-]+)/?$ /dir3/index.php?artist_id=$1 [L,QSA,NC] 
RewriteRule ^/?news/[\w-]+/([\w-]+)/?$ /dir4/article.php?artist_id=$1 [L,QSA,NC] 

Cependant, après cela, j'essaie ceci ci-dessous, et il n'y a pas de réponse du tout à partir du serveur. Il charge juste l'ancienne page (toujours sur le serveur)

mon habitude redirect tentatives, essayé et ne fonctionne pas

RedirectMatch 301 ^/old_dir//old_file.html /artists/subdir/21/biography/ 
RewriteRule /old_dir//old_file.html /artists/subdir/21/biography/ [L,R=301] 

Tout le monde sait comment définir la coutume réoriente après les premières RewriteRules?

ps. même pas @ œuvres de réponse de Anubhava (htaccess Redirects Not Working Right)

Répondre

1

Votre modèle de regex est le problème pour 301 règle:

RewriteEngine On 

RewriteRule ^old_dir/old_file\.html$ /artists/subdir/21/biography/ [L,R=301,NC] 

RewriteCond %{SCRIPT_FILENAME} -d [OR] 
RewriteCond %{SCRIPT_FILENAME} -f 
RewriteRule^- [L] 

RewriteRule ^/?artists/[\w-]+/([\w-]+)/([\w-]+)/?$ /dir1/artist.php?artist_id=$1&page_id=$1 [L,QSA,NC] 
RewriteRule ^/?tour/[\w-]+/([\w-]+)/?$ /dir2/index.php?artist_id=$1 [L,QSA,NC] 
RewriteRule ^/?video/[\w-]+/([\w-]+)/?$ /dir3/index.php?artist_id=$1 [L,QSA,NC] 
RewriteRule ^/?news/[\w-]+/([\w-]+)/?$ /dir4/article.php?artist_id=$1 [L,QSA,NC] 

BTW Je ne vois aucune relation de ce problème avec la réponse liée (cette réponse est d'ajouter www et https)

espère que ma réponse fonctionne cette fois-ci pour vous :)

+1

Mais vous êtes toujours le génie! Merci beaucoup d'avoir résolu ça! Et désolé de ne pas lire l'autre question à droite. Assez analphabètes ici à ce sujet. – KJS