Redirection racine vers dossier

Discussion sur le mod rewrite d'Apache : .htaccess, utilisation, expériences... Réécriture d'URL (URL rewriting).

Modérateur: Modérateurs

Redirection racine vers dossier

Messagede Macallan » Mar Oct 31, 2006 7:39 am

Bonjour,

j'ai acheté un nom de domaine qui est activé, j'y ai installé un forum SMF, l'architecture est la suivante :
-http://www.domaine.com
le forum se trouve dans un répertoire à part (/forum/)
j'y accède comme suit :
-http://www.domaine.com/forum ce qui m'emmène directement à l'index du forum.

Je souhaite que lorsqu'on accède au domaine -www.domaine.com on soit automatiquement redirigé vers l'index du forum, j'ai remplis le .htaccess comme suit :

Code: Tout sélectionner
<Files .htaccess>
order allow,deny
deny from all
</Files>
Options +FollowSymLinks
RewriteEngine on
RedirectPermanent / http://www.domaine.com/forum/


lorsque je rentre l'adresse
-http://www.domaine.com

ca me redirige avec Firefox sur
-http://www.domaine.com/forum/forum/forum/forum/forum/forum/forum/forum/forum/

Dans le redirectpermanent si je ne mets pas le / le résultat est alors sans le /, et si j'enlève le options +symlinks j'ai une erreur 500.

Je ne vois pas ou cela cloche, pourtant cela ne me semble pas bien compliqué dans mon cas, j'ai épluché pleins de sites et la syntaxe ne me semble pas incorrecte, je pense que cela vient de l'architecture mais ou?

Merci pour votre coup de main ;)

P.S. : d'ailleurs pourquoi n'ais-je pas besoin de saisir -http://www.domaine.com/forum/index.php pour atterrir sur l'index? J'ai regardé dans l'index.php,rien de bien probant...
Macallan
 
Messages: 12
Inscription: Mar Oct 31, 2006 1:41 am

Publicité

Messagede dcz » Mar Oct 31, 2006 8:41 am

Alors en fait, l'index.php est recherché par défaut en général.

Tu peux ajouter et modifier le nom des fichier que le serveur cherchera en premier dans un dossier avec la directive DirectoryIndex au début du .htaccess :

Code: Tout sélectionner
DirectoryIndex index.php index.html


Les différent fichiers attendues séparés par des espaces. Si tu spécifie explicitement les fichiers autorisés, cela empêchera l'affichage des dossier dans lesquels ne se trouvent aucun des fichiers de la liste.

Par exemple, si tu as un dossier avec un fichier test.html dedans, dossier/ n'affichera rien, mais dossier/test.html marchera normalement.

Ensuite, pour ta redirection, c'est normal ça boucle là, puisque quoi que tu demandes tu renvois tout vers forum/, même forum/.

De plus RedirectPermanent n'est pas une directive du module mod_rewrite, pas besoin de lancer le RewriteEngine avant celle ça.

Je propose donc :
Code: Tout sélectionner
<Files config.php>
Deny from all
</Files>
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^forums/].+)  http://www.domaine.com/forum/$1 [QSA,L,R=301]


J'ai mis :
Code: Tout sélectionner
<Files config.php>
Deny from all
</Files>

A la place de

Code: Tout sélectionner
<Files .htaccess>
order allow,deny
deny from all
</Files>


Pour te suggérer d'interdire l'accès distant à des fichiers plus sensibles que le .htaccess, qui en général n'est pas directement accessible.

Avec ça, il faudrait penser au duplicate du préfixe www ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21393
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede Macallan » Mar Oct 31, 2006 10:08 am

Merci pour ta réponse ;)

J'avais pas percuté que ca bouclait sur forum, maintenant ca me aprait plus logique ;)

J'ai changé avec ce que tu m'as donné par contre ça ne boucle plus mais ça me met inaccessible (un joli 403 forbidden).

Le fichier se place bien à la racine de /forum/ c'est ca?

Tu n'as pas indiqué de
Code: Tout sélectionner
Order allow, deny

ce n'est pas obligatoire? (genre d'initialisation)?

Comme j'aime bien décortiquer les choses, la ligne suivante :
Code: Tout sélectionner
RewriteRule ^([^forums/].+)  http://www.domaine.com/forum/$1 [QSA,L,R=301]


signifie :
Tout ce qui commence par l'expression forums** (pisque si j'ai bien appris ma leçon le "." signifie tout et le + répète éventuellement le mot forums) va être transformé en -http://www.domaine.com/forum/ce_qui_est_plus_haut.
Le $ n'est pas nécessaire pour marquer la fin de l'expression?

Merci pour ton aide ;)
Macallan
 
Messages: 12
Inscription: Mar Oct 31, 2006 1:41 am

Messagede dcz » Mer Nov 01, 2006 8:28 am

En effet un petit $ pourrait le faire et sans "s" c'est mieux pour toi je pense ;) Essai plutôt ça :

Code: Tout sélectionner
RewriteRule ^([^forum/].+)(.*)$  http://www.domaine.com/forum/$2 [QSA,L,R=301]


Décortiqué, ça donne, s'il n'y a pas exactement forum/ dans l'uri, alors on renvois dans le dossier forum [^forum/] est une négation et .+ veut dire au moins une occurence, diffèrent de .* qui dit zéro ou une occurence du texte qui précède.
On capture tout ce qui suivrait (.*) et on le balance dans notre nouvelle URI ($2).

Ce doit être pas loin de ça.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21393
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede Macallan » Mer Nov 01, 2006 1:31 pm

Salut,

merci pour les précisions!

J'ai essayé avec cette modif mais je tombe sur un 500 internal server error quand je le colle à la racine du forum, et 403 forbiden quand je le mets à la racine du site....
Macallan
 
Messages: 12
Inscription: Mar Oct 31, 2006 1:41 am

Messagede dcz » Mer Nov 01, 2006 4:46 pm

hum, et comme ça :

Code: Tout sélectionner
RewriteCond  %{REQUEST_URI} !^forum/$
RewriteRule ^(.*)$ /forum/$1 [QSA,L,R=301]


On va bien finir par la trouver cette redirection ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21393
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede Macallan » Mer Nov 01, 2006 5:47 pm

Idem hehe
mêmes messages d'erreur....

Le fichier doit se placer à la source du domaine ou à la racine du forum (donc dans le répertoire forum)?
Macallan
 
Messages: 12
Inscription: Mar Oct 31, 2006 1:41 am

Messagede dcz » Mer Nov 01, 2006 5:52 pm

Racine du domaine.

Tu mets bien :
Code: Tout sélectionner
RewriteEngine on
RewriteBase /


Avant ?

Voir :

Code: Tout sélectionner
Options +FollowSymlinks -Indexes
RewriteEngine on
RewriteBase /


Autrement, on peut se préoccuper uniquement des URLs du forum, pas de tous les cas d'un coup.

Donc, tes URLs sont elle réécrites ?
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21393
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede Macallan » Mer Nov 01, 2006 6:19 pm

Voila ce que j'ai mis :

Code: Tout sélectionner
Options +FollowSymlinks -Indexes
RewriteEngine on
RewriteBase /
RewriteCond  %{REQUEST_URI} !^forum/$
RewriteRule ^(.*)$ /forum/$1 [QSA,L,R=301]


Et ca me donne erreur 500.

Comment vérifier si les URL sont re-ecrites?
Car mon seul souhait, c'est quand on tape http://www.domaine.com que ca parte sur http://www.domaine.com/forum

[/code]
Macallan
 
Messages: 12
Inscription: Mar Oct 31, 2006 1:41 am

Messagede dcz » Mer Nov 01, 2006 6:25 pm

Et ça :
Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^([^forum/].+)(.*)$  http://www.example.com/forums/$2 [QSA,L,R=301]


Marche nickel sur mon serveur.

Si ça coince essais sans Options +FollowSymlinks pour voir.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21393
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede Macallan » Mer Nov 01, 2006 6:35 pm

500 avec le symlink, 403 sans.
Macallan
 
Messages: 12
Inscription: Mar Oct 31, 2006 1:41 am

Messagede dcz » Mer Nov 01, 2006 6:39 pm

erf et sans le s de forums ?
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21393
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede Macallan » Mer Nov 01, 2006 6:46 pm

oui oui c'est sans le "s" ;)
Macallan
 
Messages: 12
Inscription: Mar Oct 31, 2006 1:41 am

Messagede dcz » Jeu Nov 02, 2006 8:26 am

Et le mod rewrite est bien utilisable ?
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21393
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede Macallan » Ven Nov 03, 2006 6:06 pm

Salut,
ben ouais, sur le site de mon hébergeur certains l'utilisent donc oui, je vais les ocntacter pour voir.
Macallan
 
Messages: 12
Inscription: Mar Oct 31, 2006 1:41 am

Suivante

Retourner vers mod rewrite Apache

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités