2012-02-28 5 views
0

Donc, pour le moment, mon .htaccess ressemble un peu à ceci:.htaccess redirect malheurs - ne pas terminer

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

# END WordPress 

RewriteCond %{HTTP_HOST} ^colorspace\.am$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.colorspace\.am$ 
RewriteRule ^portfolio\/?(.*)$ "http\:\/\/i\.colorspace\.am\/portfolio$1" [R=301,L] 

Je veux déplacer tout le contenu de mon répertoire racine dans un sous-domaine (que je » J'ai fait) mais je ne veux pas que les gens ne travaillent pas. www.colorspace.am/portfolio doit rediriger vers i.colorspace.am/portfolio, et tous les jeux qu'il contient (ie/portfolio/YYYYMMDD) doivent également être 'ajustés' à la volée (www.colorspace.am/portfolio/YYYYMMDD -> i.colorspace.am/porfolio/YYYYMMDD

REMARQUE: i.colorspace.am contient le contenu de 2011, ii.colorspace.am contiendra 2012. Il s'agit de deux installations WP entièrement différentes avec leurs propres bases de données respectives . Je ne sais pas si elle est pertinente, mais ..

ce qui semble se produire est que/portefeuille est chargé de rediriger vers i.colorspace.am/portfolio, mais pour quelque raison que c'est de se retrouver à i.colorspace.am

SI il y a un moyen que je peux faire un ny www.colorspace.am/folder/sub-folder rediriger vers i.colorspace.am/folder/sub-folder (wildcard?) .. ce serait incroyable. Mais je serais tout aussi heureux avec une seule redirection entièrement fonctionnelle à ce stade.

REMARQUE: le code de redirection a été généré par mon panneau d'administration. J'ai essayé

Redirect /portfolio http://i.colorspace.am/portfolio 

Mais cela a entraîné une erreur «trop de redirections».

Répondre

0

Après la redirection de

RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L] 

Les règles

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

on accède à nouveau. C'est la raison pour laquelle il finit au i.colorspace.am.

Ajouter ces 2 règles

RewriteCond %{HTTP_HOST} ^(?:www\.)?i.colorspace\.am$ 
RewriteRule protfolio -[L] 

en ordre mentionné ci-dessous.

changer également (juste une petite optimisation)

RewriteCond %{HTTP_HOST} ^colorspace\.am$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.colorspace\.am$ 
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L] 

à

RewriteCond %{HTTP_HOST} ^(?:www\.)?colorspace\.am$ 
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L] 

et le mettre à l'intérieur du bloc IfModule dans le même ordre mentionné ci-dessous.

venez le ci-dessous dans votre .htaccess:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

#add these 2 lines: 
RewriteCond %{HTTP_HOST} ^(?:www\.)?i.colorspace\.am$ 
RewriteRule protfolio -[L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

RewriteCond %{HTTP_HOST} ^(?:www\.)?colorspace\.am$ 
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L] 

</IfModule> 
# END WordPress 
+0

a été le dernier bloc (commençant # BEGIN WordPress, la fin) le * COMPLET * Code .htaccess, ou tout simplement ce qui est contenu dans le WP/IfModule? Je demande parce qu'il y avait des bits où vous avez dit 'ajouter ci-dessous' etc etc, et puis votre code final contient des règles que je mettais en dehors du module .. à l'intérieur de celui-ci. Donc devrais-je avoir les règles en dehors du module et les mêmes que celles-ci ou suis-je en train de faire un énorme gâchis de choses: | J'ai essayé [uniquement] le code ci-dessus, et je me suis retrouvé sur i.colorspace.am ..donc je vais les recopier à l'extérieur et voir comment ça se passe: | –

+0

Juste essayé avec le code à l'intérieur et à l'extérieur. Pas de chance :(MAIS, il semble tout avoir rattrapé (précédemment/le portfolio redirigeait mais/portfolio/YYYYMMDD ne le ferait pas) –

+0

@AlexMasters Il suffit de spécifier les réécrits dans la réponse, et de supprimer le cache de votre navigateur. – ThinkingMonkey