8791 sujets

Développement web côté serveur, CMS

Bonjour,

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

J'ai mis le .htaccess fourni par défaut avec CMSMS à la racine de mon site pour la réécriture d'URL propres.

# 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 :
# .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
<? 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 ??? Smiley decu

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.
Salut,

tu pourrais essayer de faire :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^dossier_protégé.*$  -  [L]
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Merci pour ta réponse mais ça ne fonctionne pas Smiley decu

J'ai toujours un Not found sur mon dossier à protéger et en rajoutant
 RewriteRule ^dossier_protégé.*$  -  [L]

(en mettant le nom de mon dossier à protéger évidemment),
les css ne sont plus trouvées par CMSMS et je n'ai plus accès à l'admin Smiley ohwell

J'ai fait qq recherches avec la piste que tu m'as donné, en cherchant du côté des conditions, j'ai rajouté ceci sans succès :

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

RewriteCond %{REQUEST_URI} !^/?dossier_protégé/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]


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 Smiley bawling
Modifié par Trangsene (19 Jan 2010 - 14:51)