2010-05-08 3 views
0

Ouais, Iam essayant de faire le dossier _private à partir du Web lui-mêmeComment rediriger ce droit avec .htaccess

Je ne peux pas savoir comment je fais un redirect /../. Parce que cela se passe dans Apache, il devrait le permettre d'une manière ou d'une autre.

Je veux ../ parce que parfois _PUBLIC est la racine de www, dépend des grands ensembles de webhosts là-bas, et je veux que cela fonctionne sur les deux configurations =/

Structure

/ (www root) 
    - .htaccess #1 
    - _PUBLIC/ 
     - .htaccess #2 
     - images/ 
     - javascripts/ 
     - styles/ 
    - _PRIVATE/ 
     - pages/ 
      - login.php 



.htaccess #1 
    * -> /_PUBLIC/* 

.htaccess #2 
    user/login -> /../_PRIVATE/pages/login.php 

Cette est la façon dont mes fichiers .htaccess ressemble maintenant

.htaccess #1 
    RewriteCond $1 !^_PUBLIC 
    RewriteRule ^(.*)$ /_PUBLIC/$1 [L] 

.htaccess #2 
    RewriteRule ^user/login/? /../_PRIVATE/pages/login.php [L] 
+0

Qu'est-ce que vous essayez? (Et: sont _PUBLIC et _PRIVATE parties de votre schéma d'URL ou voulez-vous qu'ils soient invisibles pour le visiteur du site) –

+0

Ouais, j'essaie de faire le dossier _PRIVATE sur le web lui-même, Mais c'est dans .htaccess # 2 J'ai le plus de problème, je ne peux pas comprendre comment je fais un /../ rediriger. Parce que cela se passe dans Apache, il devrait le permettre en quelque sorte – Markus

+0

À quoi ressemblent vos règles? – Gumbo

Répondre

0

Je pense que vous devriez laisser tomber la première / avant ..

RewriteRule ^user/login/? ../_PRIVATE/pages/login.php [L] 

Cela ne fonctionne-t-il pas?

MISE À JOUR:

si vous pouvez accéder _PUBLIC et _Private comme http://yoursite/_PUBLIC et http://yoursite/_PRIVATE alors vous devriez juste Réécrire

RewriteRule ^user/login/? /_PRIVATE/pages/login.php [L] 

FIN Upate

également: vous devriez être en mesure de fusionner vos deux .htaccess fichiers en ajoutant le préfixe _PUBLIC à la règle dans # 2 - de cette façon vous n'avez pas à utiliser .. du tout.

+0

Hmm, dépouiller le/n'a pas fonctionné, Je reçois erreur 400 (mauvaise demande). Oui, il y a une raison pour laquelle je ne les ai pas fusionnés de cette façon, le site va fonctionner à la fois avec _PUBLIC comme DocRoot mais aussi/(incluant à la fois _PRIVATE et _PUBLIC) – Markus

+0

Merci pour la réponse rapide. Je vous en suis reconnaissant. – Markus

+0

mis à jour ma réponse –

0

Essayez ces règles:

RewriteCond $1 !^_(PUBLIC|PRIVATE)($|/) 
RewriteCond %{THE_REQUEST} !^[A-Z]+\ /_(PUBLIC|PRIVATE)[/?\ ] 
RewriteRule ^(.*)$ /_PUBLIC/$1 [L] 

RewriteRule ^user/login/? /_PRIVATE/pages/login.php [L] 
+0

Merci, cela fonctionnera en effet dans un scénario (/ est www root). J'ai oublié d'ajouter cela à la description (l'ai ajouté maintenant) mais parfois _PUBLIC sera la vraie racine www. et cela ne fonctionnera pas alors je pense – Markus

+0

@Markus: Vous pouvez toujours utiliser le chemin absolu du système de fichiers. – Gumbo