Réécriture d'url et dossier protégé avec htaccess ?

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.6
#~ Version du MLE si existante : Non
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour,

Ouf dernière ligne droite, le site sur lequel je travaille sera bientôt en ligne, mais je bute sur un dernier problème.

J'ai activé la réécriture d'url propre et mis le .htaccess par défaut à la racine de mon site.

Code :
# Attempt to override some php settings, these settings may be helpful on some hosts if your
# default configuration does not meet CMS's minimum requirements, and your host
# has given your account appropriate permissions
#php_value upload_max_filesize "10M"
#php_value session_save_path "tmp/cache"

#php_flag magic_quotes_gpc Off
#php_flag register_globals Off
#php_flag session.use_trans_sid Off

# (this is important, so uncomment if your host permit)
#Options -Indexes
#ServerSignature Off
#
Options +FollowSymLinks
#
<IfModule mod_rewrite.c>
RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /

#
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# but ignore POST requests.
#RewriteCond %{REQUEST_URI} !/$
#RewriteCond %{REQUEST_URI} !\.
#RewriteCond %{REQUEST_METHOD} !POST$
#RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
J'ai besoin aussi de protéger l'accès à un dossier spécifique rajouté sur mon hébergement.

Comme d'habitude, j'ai mis un fichier htaccess et htpassword dans mon dossier :
Code :
# .htaccess
AuthUserFile "/home/mon_site/public_html/export/.htpasswd"
AuthName "Acces restreint"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
Je trouve le chemin vers ce dossier après avoir mis dedans un fichier php avec
Code :
<? echo realpath("index.php"); ?>
Mais le problème c'est que lorsque j'essaye d'accéder à mon dossier protégé (http://monsite/dossier_protégé) j'ai alors comme résultat :
Not Found
The requested URL was not found on this server.


Pourquoi donc ??? :-(

Si je retire le htaccess à la racine du site, l'authentification fonctionne.

J'imagine qu'il y a un conflit entre mes 2 htaccess mais je ne vois pas du tout comment le résoudre. J'ai trouvé des sources sur le htaccess de protection et sur le htaccess de réécriture de CMSMS mais rien sur les 2 en même temps !

Merci d'avance à ceux qui voudront bien se pencher sur mon problème.
Répondre
#1
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.6
#~ Version du MLE si existante : Non
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour,

Ouf dernière ligne droite, le site sur lequel je travaille sera bientôt en ligne, mais je bute sur un dernier problème.

J'ai activé la réécriture d'url propre et mis le .htaccess par défaut à la racine de mon site.

Code :
# Attempt to override some php settings, these settings may be helpful on some hosts if your
# default configuration does not meet CMS's minimum requirements, and your host
# has given your account appropriate permissions
#php_value upload_max_filesize "10M"
#php_value session_save_path "tmp/cache"

#php_flag magic_quotes_gpc Off
#php_flag register_globals Off
#php_flag session.use_trans_sid Off

# (this is important, so uncomment if your host permit)
#Options -Indexes
#ServerSignature Off
#
Options +FollowSymLinks
#
<IfModule mod_rewrite.c>
RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /

#
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# but ignore POST requests.
#RewriteCond %{REQUEST_URI} !/$
#RewriteCond %{REQUEST_URI} !\.
#RewriteCond %{REQUEST_METHOD} !POST$
#RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
J'ai besoin aussi de protéger l'accès à un dossier spécifique rajouté sur mon hébergement.

Comme d'habitude, j'ai mis un fichier htaccess et htpassword dans mon dossier :
Code :
# .htaccess
AuthUserFile "/home/mon_site/public_html/export/.htpasswd"
AuthName "Acces restreint"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
Je trouve le chemin vers ce dossier après avoir mis dedans un fichier php avec
Code :
<? echo realpath("index.php"); ?>
Mais le problème c'est que lorsque j'essaye d'accéder à mon dossier protégé (http://monsite/dossier_protégé) j'ai alors comme résultat :
Not Found
The requested URL was not found on this server.


Pourquoi donc ??? :-(

Si je retire le htaccess à la racine du site, l'authentification fonctionne.

J'imagine qu'il y a un conflit entre mes 2 htaccess mais je ne vois pas du tout comment le résoudre. J'ai trouvé des sources sur le htaccess de protection et sur le htaccess de réécriture de CMSMS mais rien sur les 2 en même temps !

Merci d'avance à ceux qui voudront bien se pencher sur mon problème.
Répondre
#2
Up

J'ai essayé de rajouter une condition sur l'accès à mon dossier protégé sans plus de succès :
Code :
RewriteCond %{REQUEST_URI} !^.*/dossier_protégé/.*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Et ceci ne marche pas non plus :

Code :
RewriteCond %{REQUEST_URI} !^/?dossier_protégé/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
http://monnomdedomaine/dossier_protégé reste toujours not found.
Une bonne âme qui s'y connait en htaccess et règles de réécriture ne peut rien pour moi svp ? :-\

Je ne comprends pas d'où vient le problème.
Il est bien mentionné dans le htaccess fourni avec CMSMS :

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory

ce qui est exactement mon cas puisque je cherche à accéder à un dossier
Répondre
#2
Up

J'ai essayé de rajouter une condition sur l'accès à mon dossier protégé sans plus de succès :
Code :
RewriteCond %{REQUEST_URI} !^.*/dossier_protégé/.*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Et ceci ne marche pas non plus :

Code :
RewriteCond %{REQUEST_URI} !^/?dossier_protégé/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
http://monnomdedomaine/dossier_protégé reste toujours not found.
Une bonne âme qui s'y connait en htaccess et règles de réécriture ne peut rien pour moi svp ? :-\

Je ne comprends pas d'où vient le problème.
Il est bien mentionné dans le htaccess fourni avec CMSMS :

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory

ce qui est exactement mon cas puisque je cherche à accéder à un dossier
Répondre
#3
Logique qu'il ne trouve pas. Nomme ton dossier "dossier_protege" (sans accent).
Répondre
#3
Logique qu'il ne trouve pas. Nomme ton dossier "dossier_protege" (sans accent).
Répondre
#4
Lol je n'y connais pas grand chose en url rewriting mais quand même... :-D
"dossier protégé" n'est ici qu'à titre d'exemple, comme une variable.
En l'occurence le nom de mon dossier est "export" mais ça ne résout pas le problème
Répondre
#4
Lol je n'y connais pas grand chose en url rewriting mais quand même... :-D
"dossier protégé" n'est ici qu'à titre d'exemple, comme une variable.
En l'occurence le nom de mon dossier est "export" mais ça ne résout pas le problème
Répondre
#5
Tu es chez quel hébergeur ? Que te renvoie le realpath ?
Répondre
#5
Tu es chez quel hébergeur ? Que te renvoie le realpath ?
Répondre
#6
L'hébergeur est hosteur.com

Le realpath renvoie ça : /home/saug7sp/public_html/export/.htpasswd

Et donc si je vire le htaccess de réécriture, quand je veux rentrer dans le dossier export, l'authentification fonctionne.

Désolé je me répète mais je ne comprends pas du tout pourquoi j'ai un "not found" avec les 2 htaccess en place
Répondre
#6
L'hébergeur est hosteur.com

Le realpath renvoie ça : /home/saug7sp/public_html/export/.htpasswd

Et donc si je vire le htaccess de réécriture, quand je veux rentrer dans le dossier export, l'authentification fonctionne.

Désolé je me répète mais je ne comprends pas du tout pourquoi j'ai un "not found" avec les 2 htaccess en place
Répondre
#7
Essaye http://monnomdedomaine/dossier_protégé avec et sans www.
Répondre
#7
Essaye http://monnomdedomaine/dossier_protégé avec et sans www.
Répondre
#8
Avec ou sans www, même résultat : 404 :-(
Répondre
#8
Avec ou sans www, même résultat : 404 :-(
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)