Jump to content

[Résolu] Acceder diectement a un dossier sur le serveur


Recommended Posts

Bonjour un petit truc qui coince dans mes tests pour passer en 1.5.

 

 

Dans l'arborescence de ma boutique j'ai un dossier XXX protégé par un htacess auquel j’accède par l'url suivante :

 

urldemaboutique.com/XXX

 

Sur 1.4 pas de soucis. Sur 1.5 je suis redirigé vers la page 404 de ma boutique.

 

Je pense que c'est le htacess de la boutique qui filtre mais je n'arrive pas à passer au travers.

 

Merci de votre aide.

 

 

Edited by manouille (see edit history)
Link to comment
Share on other sites

Je peux te donner une piste de résolution, mais ce n'est peut-être pas ce que tu recherches.

 

J'ai rencontré ce problème car je voulais avoir des répertoires accessibles à la racine du site (maboutique.com/monrepertoire). Ma solution a été de mettre tout le dossier prestashop dans un sous répertoire à l'intérieur du www/. J'ai donc quelques chose comme ça :

 

www/

-- boutique/

-- monrepertoire1/

-- monrepertoire2/

 

Dans mon .htaccess au niveau du www/, j'ai une redirection qui dit que :

Si l'url essaye d'accéder à un répertoire qui existe, tu affiches le répertoire

Sinon, tu rediriges l'url vers boutique/.

En clair, si l'uilisateur tape : http://www.maboutique.com ou http://www.maboutique.com/mon-compte, il sera redirigé vers :

http://www.maboutique.com/boutique/

http://www.maboutique.com/boutique/mon-compte

 

Voici le htaccess :

RewriteEngine on
RewriteCond %{HTTP_HOST} !^maboutique\.com
RewriteRule (.*) http://maboutique.com/$1 [R=301,L]


RewriteCond %{HTTP_HOST} ^maboutique.com$
RewriteCond %{REQUEST_URI} !^/boutique/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /boutique/$1
RewriteCond %{HTTP_HOST} ^maboutique.com$
RewriteRule ^(/)?$ boutique/index.php [L]

Dans les préférences de Prestashop (SEO & URLS) j'ai rentré les valeurs suivantes :

domaine : maboutique.com

domaine SSL : maboutique.com

Chemin : /boutique/

 

En espérant que cela puisse t'aider !

Link to comment
Share on other sites

Bonjour,

j'ai essayé cette solution (et d'autres qui lui ressemble) sans succès.

 

En effet semblerait que le htacess soit réécrit par le dispatcher. Donc si je met une condition avant un rewrite dans le htacess celui-ci ne fonctionne pas.

 

Du coup je me demande s'il ne faut pas mettre une règle dans celui-ci ou alors trouver le moyen que la règle ne soit pas réecrite automatiquement.

 

Incroyable que ce soit devenu si compliqué !

Link to comment
Share on other sites

Le .htaccess au niveau de prestashop est réécrit lors du changement des valeurs dans les champs domaine, domain SSL et chemin de SEO&URL (peut-être à d'autres moments aussi).

 

Du coup, cela ne sera à rien de rajouter des règles dans ce .htaccess.

 

Si le boutique te gêne, il faut voir si il est possible de faire de la réécriture d'URL pour l'enlever. Mais je ne sais pas comment le faire. J'avais du m'y pencher dessus, puis abandonner. Si tu trouves quelques choses de satisfaisant, n'hésites pas à partager, ça m'intéresse !

Link to comment
Share on other sites

Bon bah voila la solution est toute bete.

 

Il faut écrire une règle à la fin du htacess à l'exterieur de la partie réservée à la génération automatique du htacess

 

Si xxx est le dossier auquel vous voulez avoir accès il faut avoir à la fin du htacess ceci

# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

  RewriteEngine on
RewriteRule ^xxx/(.*) /xxx/$1 [L]
  RewriteEngine off

Voila. Bonne journée :)

Edited by manouille (see edit history)
  • Like 1
Link to comment
Share on other sites

Bien vu !

 

Donc sans modif du htacess de la boutique et sans htacess dans mon dossier xxx j'accède sans problème.

 

Le htacess de mon dossier xxx est une simple protection par mot de passe

 

La structure de mes fichiers est comme cela

 

-root

--.httppasswds

-- public_html

--- htacess de presta et les fichiers/dossiers presta

--- xxx (mon dossier)

---- htacess de mon dossier xxx

 

Le htacess de xxx est écrit comme cela

AuthType Basic
AuthName "xxx"
AuthUserFile "/root/.htpasswds/passwd"
require valid-user
Edited by manouille (see edit history)
Link to comment
Share on other sites

Mouarf il me semble (je ne vais pas crier victoire trop tot) avoir trouvé la solution grace à ce lien

 

http://x-aeon.com/wp/2011/11/18/how-to-make-rewritecond-work-with-sub-directories-needing-http-authentication/

 

En fait il faut spécifier dans le htacess du dossier à protéger l'erreur 401.

 

Ce qui donne dans mon dossier protégé.

ErrorDocument 401 "Unauthorized Access"
AuthType Basic
AuthName "xxx"
AuthUserFile "/root/.htpasswds/passwd"
require valid-user

Et là ca semble fonctionner.

 

Le pourquoi du comment je sais pas trop mais je vais me contenter de ca ce soir :)

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...