2009-12-08 2 views
1

ceci est ma structure de répertoire.htaccess multiples réoriente

/home 
    /template 
    /classifieds 
    /listings 

Je veux cacher/modèle et que vous souhaitez afficher tous les fichiers sous modèle sur la maison. comme /home/template/home.php devrait être www.example.com/home.php ou /home/template/style.css devrait être www.example.com/style.css

Et quelqu'un essayant d'accéder à l'exemple .com/template/.php devrait être renvoyé à example.com/ .php s'il existe ou 404.php s'il ne l'est pas.

C'était mon htaccess à gérer cela.

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_URI} ^/template/.*php 
RewriteRule . /$1 [NC,R] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

Options -Indexes 

Et mon code php

if (!file_exists("template/" . $page)) 
    include_once "template/404.php"; 
else 
    include_once "template/" . $page; 

Cependant j'ai ajouté plus de choses comme/classés et/listes doivent être répertoriés comme il est, à savoir example.com/classified/*.php

maintenant, quand je tente d'accéder /answers/home.php ouvre directement la home.php plutôt que d'ouvrir index.php

Ceci est mon nouveau code

if (!file_exists($segments[1] . '/' . $page)) 
     include_once "template/404.php"; 
else 
    include_once $segments[1] . '/' . $page; 

Alors, quel devrait être le htaccess?

Répondre

1

Je sais que ce n'est pas une réponse directe à votre question, mais il semble plus logique d'organiser logiquement votre structure de fichier pour qu'elle corresponde à votre structure Web. Je suggère:

/home 
    /public_html 
    /classifieds 
    /listings 
    404.php 
    index.php 

D'après ce que je peux dire dans votre post, il n'y a absolument aucune raison d'être en utilisant mod_rewrite du tout.

Mais si vous vraiment voulez savoir:

RewriteCond %{REQUEST_URI} !^/classifieds/ 
RewriteCond %{REQUEST_URI} !^/listings/ 
+0

Je appuie la 're-org vos répertoires' partie. – Don