2009-11-01 9 views
0

/* Cela semblerait être une copie d'une autre question que j'avais posée il y a 10 jours (.htaccess/redirecting to https://www.example.com and virtual folder access), mais (a) je n'ai reçu aucune réponse aux changements que j'ai faits à la question, et (b) cette question est une version plus complexe de ce qui précède et je crois justifie une nouvelle requête */Redirection .htaccess/https, accès aux dossiers virtuels avec des exceptions

J'ai un site qui a les entités suivantes: example.com/index.html En plus de ce qui précède, j'ai des dossiers comme example.com/images/,/css /, etc. que le code html généré par les scripts pointent vers des dossiers comme example.com/images/,/css /, etc.

J'ai besoin de magie pour .htaccess TOUS les ci-dessous:

(a) de façon permanente redirigeant les utilisateurs de "example.com" à "www.example.com" (301 choses)

(b) réorienter de façon permanente les utilisateurs de http://www.example.com-https://www.example.com (301 choses)

(c) les utilisateurs qui accèdent example.com/ doivent, bien sûr, voir index.html, mais s'ils tapent
          example.com/ABCDEF OU
          example.com/ABCDEF/
ils doivent être redirigés vers example.com/main.php?folder=ABCDEF
SAUF lorsque ABCDEF est un dossier réel (comme/SPECIAL /,/images /,/css /, etc.)

(d) Si l'utilisateur tente d'accéder à example.com/REALFOLDER/ (par exemple/images /), il doit juste être redirigé vers example.com/

(e) Tout ceci ne devrait pas jouer avec l'affichage de l'exemple Désolé, cela semble complexe, mais c'est exactement ce dont j'ai besoin!

S

Répondre

0

Essayez ces règles:

# (a) and (b) 
RewriteCond %{HTTP_HOST} =example.com [OR] 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://www.example.com%{REQUEST_URI} [L,R=301] 
# (d) 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ./[L,R] 
# (c) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ main.php?folder=$1 [L]