Garder mes dossiers avec l'URL Rewriting

Nouveau WRInaute
Salut !

Difficile de donner un bon titre à propos des problèmes de Rewrite et compagnie ! D'ailleurs j'ai pourtant cherché, beaucoup parcouru le forum mais je n'ai pas trouvé.

Aussi, je n'ai pas passé tous les sujets ayant comme titre "problème URL Rewriting" : on est tous là pour ça :lol:

Bref, voici mon problème :

J'ai réécrit le dossier de mon DotClear pour le rendre à la racine (sans le bouger de son dossier) comme expliqué dans le petit DotClear. Tout marche d'ailleurs très bien, c'est magique :) .

Mais j'ai un petit soucis, les autres dossiers à la racine sont devenus inaccessibles avec ma manipulation. Par exemple, pour acceder à monsite.com/photoblog, je dois placer mon dossier 'photoblog' dans /dotclear/ pour qu'il fonctionne... C'est ennuyeux.

J'éspère être assez clair :wink:

Voici mon htaccess actuel :
Code:
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.goudie.biz$
RewriteRule ^(.*)   http://www.goudie.biz$1  [QSA,L,R=301]

RewriteCond %{REQUEST_URI} !/dotclear/
RewriteRule (.*)$ /dotclear/$1

Je n'ai pas trop chercher à bidouiller, sinon je vais tout casser et je vais me prendre la tête :wink:

J'attends vos solutions, du moment que ça fonctionne, c'est à dire quitte à entrer chaque nouveau dossier dans le htaccess :lol:
 
WRInaute discret
goudie35 a dit:
Voici mon htaccess actuel :
Code:
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.goudie.biz$
RewriteRule ^(.*)   http://www.goudie.biz$1  [QSA,L,R=301]

RewriteCond %{REQUEST_URI} !/dotclear/
RewriteRule (.*)$ /dotclear/$1

Je n'ai pas trop chercher à bidouiller, sinon je vais tout casser et je vais me prendre la tête :wink:

Bah tu devrais te prendre un peu la tête (au moins à faire une recherche ou deux :roll:) ou de l'assurance, c'est le niveau 0 de la "bidouille"...

Dans ton cas y devrait suffire de rajouter quelque chose du goût de
Code:
RewriteCond %{REQUEST_URI} !/photoblog/.*
(le .* doit être facultatif)

juste avant ou juste après
RewriteCond %{REQUEST_URI} !/dotclear/
 
Nouveau WRInaute
Merci :)

Génial, cela fonctionne vers "www.monsite.com/photoblog/" (le slash final obligatoire sinon il ne veut pas :? )

Second problème, ce dossier doit être accessible avec le sous domaine "photoblog.monsite.com", malheureusement celui-ci me redirige vers "www.monsite.comphotoblog" (ennuyeux).

:roll:
 
Nouveau WRInaute
C'est reglé pour le coup du slash obligatoire, je suis bête il suffisait de ne pas le mettre dans le htaccess...

Par contre pour les sous domaines... :?
 
WRInaute discret
La faute pour les sous-domaines est là:
Code:
RewriteCond %{HTTP_HOST} !^www.goudie.biz$
RewriteRule ^(.*)   http://www.goudie.biz$1  [QSA,L,R=301]

Faudrait rajouter
Code:
RewriteCond %{HTTP_HOST} !^photblog.monsite.com$

juste avant ou juste après
RewriteCond %{HTTP_HOST} !^www.goudie.biz$

C'est un peu le même plan que le premier truc, J'espère que tu commences à voir la logique :) - dans "www.monsite.comphotoblog" tu as la variable $1 du RewriteRule qui est égale à 'monphotoblog'...
 
Nouveau WRInaute
Haaa oui, j'viens de piger le coup du '$' ! :lol:

Mais j'suis quand même un peu pommé !

Par contre ta solution, est-ce que ça me gardera la redirection pour forcer le 'www' ?

Est-ce que ça m'appliquera les deux, pour me faire un 'www.photoblog.goudie.biz' ?

Merci en tout cas :D
 
Nouveau WRInaute
Arg, ça marche pas :(

Et ça change quelque chose si je met avant ou après

RewriteCond %{HTTP_HOST} !^www.goudie.biz$

?

Merci

Edit: Ah en fait sans le '/' à la fin de 'monsite.com/photoblog/' ça marche toujours pas :( J'ai halluciné ?
 
WRInaute discret
Tu as dû halluciner :) - tu remplaces bien "monsite.com" partout ?

Si tu as par ailleurs une redirection automatique vers le www, tu devrais utiliser plutot

RewriteCond %{HTTP_HOST} ! .*photoblog.monsite.com$

ou en deux temps

RewriteCond %{HTTP_HOST} !^photoblog.monsite.com$
RewriteCond %{HTTP_HOST} !^www.photoblog.monsite.com$

(ah si tu as copié/collé j'avais fait une typo sur 'photblog')
(avant ou après l'autre rewritecond ca devrait pas faire de différence)

Poste donc le code de ton htaccess si tu l'as bidouillé :)
 
Nouveau WRInaute
Pas grave pour le 'photblog' puisque je teste avec un autre dossier 'radio' (et son sous domaine evidemment).

Je vais continuer de tester...

Mais ce que tu m'a donné là, c'est pour rediriger 'photoblog.goudie.biz' vers 'www.photoblog.goudie.biz' ?

Moi je veux pas ça ^^

Je veux le 'www' forcé juste quand il y'a pas de sous-domaine :lol:

Je vais continuer de bidouiller ^^

Et merci :D
 
Nouveau WRInaute
Arg...

Code:
RewriteCond %{HTTP_HOST} ! .*photoblog.monsite.com$

> Erreur 500 :lol:

Code:
RewriteCond %{HTTP_HOST} !^photoblog.monsite.com$
RewriteCond %{HTTP_HOST} !^www.photoblog.monsite.com$

> Bin... ça marche toujours pô. 404, il me cherche le dossier 'photoblog' dans 'dotclear/photoblog/' :(
 
WRInaute discret
goudie35 a dit:
Arg...

Code:
RewriteCond %{HTTP_HOST} ! .*photoblog.monsite.com$

> Erreur 500 :lol:
[/code]

c'est l'espace en trop entre le '!' et la suite.
Essaie aussi sans le (.*)

goudie35 a dit:
Code:
RewriteCond %{HTTP_HOST} !^photoblog.monsite.com$
RewriteCond %{HTTP_HOST} !^www.photoblog.monsite.com$

> Bin... ça marche toujours pô. 404, il me cherche le dossier 'photoblog' dans 'dotclear/photoblog/' :(

Vouais poste donc le htaccess en entier tel que sur serveur stp
(là le "monsite.con" ça passera pas...)
 
Nouveau WRInaute
En supprimant l'espace, toujours 404.

Et en inversant (.*), erreur 500 :roll:

Voici mon fichier :

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.goudie.biz$
RewriteCond %{HTTP_HOST} !.*photoblog.goudie.biz$
RewriteRule ^(.*) http://www.goudie.biz$1 [QSA,L,R=301]

RewriteCond %{REQUEST_URI} !/dotclear/
RewriteCond %{REQUEST_URI} !/photoblog/
RewriteRule (.*)$ /dotclear/$1
 
WRInaute discret
Bon ben c'est plus clair d'un coup :)

goudie35 a dit:
En supprimant l'espace, toujours 404.
Et en inversant (.*), erreur 500 :roll:

La 404 que tu obtiens avec ça, c'est au moins sur le domaine photoblog normalement (note : l'espace est a supprimer de toute façon)
( au cas où
erreur 500 => mauvaise syntaxe
erreur 400 => bonne syntaxe, fichier non trouvé...
Donc faut se réjouir d'une 404, si la règle est pas parfaite au moins elle plante pas le moteur du serveur web :))
)

La faute de la 404 en est au deuxième bloc, vu que photoblog.blabla arrive direct dans le bon répertoire, et tu auras pas de /phtoblog à matcher (faudrait remplacer RewriteCond %{REQUEST_URI} !/photoblog/ par un test sur le nom de domaine)

Ceci dit si tu n'as pas besoin de
RewriteCond %{HTTP_HOST} !^www.goudie.biz$

c'est mieux (de manière générale, c'est la zone de rediriger "tout ce qui n'est pas..." dans le cas où tu veux gérer plusieurs domaines. Si le but est de rediriger le domaine sans www, tu peux le faire explicitement :

Code:
RewriteCond %{HTTP_HOST} ^goudie.biz$
RewriteRule ^(.*)   http://www.goudie.biz$1  [QSA,L,R=301]

RewriteCond %{HTTP_HOST} ^www.goudie.biz$
RewriteCond %{REQUEST_URI} !/dotclear/
RewriteRule (.*)$ /dotclear/$1

Comme ça (redirection sur condition explicite et positive, pas de redirection par défaut) au moins ça foutra la paix aux autres ndds

Je te laisse bidouiller sur ces pistes-là :)
 
WRInaute discret
Nouveau WRInaute
Bon ba... Vraiment, merci :lol:

> Mon 'goudie.biz' est redirigé vers 'www.goudie.biz' comme avant,
> Mon 'photoblog.goudie.biz' fonctionne a merveille,
> Mon 'www.goudie.biz/photoblog' cherche toujours dans '/dotclear/' mais c'est pas grave ! :lol:

Merci, merci, merci ! :D
 
WRInaute discret
goudie35 a dit:
Bon ba... Vraiment, merci :lol:

> Mon 'goudie.biz' est redirigé vers 'www.goudie.biz' comme avant,
> Mon 'photoblog.goudie.biz' fonctionne a merveille,
> Mon 'www.goudie.biz/photoblog' cherche toujours dans '/dotclear/' mais c'est pas grave ! :lol:

Merci, merci, merci ! :D

De rien...
En espérant que ça te donne quelques bases pour t'aider par la suite, ou un autre débutant

enfin pour me citer, pour le répertoire qui va pas bien...

sunflower a dit:
Dans ton cas y devrait suffire de rajouter quelque chose du goût de
Code:
RewriteCond %{REQUEST_URI} !/photoblog/.*

(le .* doit être facultatif)

Je te laisse retrouver où le mettre :)
 
Discussions similaires
Haut