IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Forcer l'url avec Rewrite


Sujet :

Apache

  1. #1
    Membre averti
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 263
    Points : 333
    Points
    333
    Par défaut Forcer l'url avec Rewrite
    Bonjour à tous

    J'ai une petite question concernant le rewrite, j'ai cherché quasiment partout et je n'ai même pas vu cette question posée une fois :-)

    Voilà, donc j'ai fait des règles pour qu'une adresse d'un site soit du type :
    https://www.monsite.com/fr.home.index.html

    La page d'origine étant :
    https://www.monsite.com/index.php?lang=fr&mod=home&page=index

    Mon problème est qu'un visiteur mal-intentioné peut tout de même arrivé par l'adresse :
    http://www.monsite.com/index.php?lang=fr&mod=home&page=index

    - Comment puis-je faire pour forcer le visiteur sur le https ?
    - Comment puis-je faire pour forcer le visiteur sur l'url rewrite ?

    Et biensur associé à ses questions est la redirection automatique.

    J'ai les solutions en php pour lesquels j'ai créé des scripts, mais je pense qu'il doit y avoir une solution en utilisant directement htaccess, ça permettrait en plus d'avoir deux système de vérification complémentaire, sans compter qu'un visiteur ne pourrait même pas accéder à des sous-répertoire, il serait automatiquement redirigé ver l'adresse de base.

    Merci pour votre aide...

    A bientôt...

  2. #2
    Membre averti
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 263
    Points : 333
    Points
    333
    Par défaut
    Bonjour à tous,

    Bon j'ai trouvé une condition qui me permet de forcer le https, malheureusement il y a une erreur à la suite...

    Voici mon code htaccess :

    RewriteEngine on
    RewriteRule (.+)\.(.+)\.(.+)\.html$ /model/index.php?lang=$1&mod=$2&page=$3 [L]
    RewriteCond %{SERVER_PORT} !443$
    RewriteRule ^(.*) https://www.monsite.com/model/ [R=301,L]

    C'est bien, ça force le https, mais cela n'affiche que les adresses du type :
    http://www.monsite.com/model/index.php?lang=fr&mod=home&page=index

    Merci de m'éclairer sur ce coup là, je pige pas pourquoi les adresses réécrite renvoyent une erreur...

    De plus je n'ai pas réussis à mettre en place une condition pour forcer l'accès sur les adresses réécrite si une personne essais avec l'adresse dynamique.

    A bientôt...

  3. #3
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Et quel est l'erreur ?

  4. #4
    Membre averti
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 263
    Points : 333
    Points
    333
    Par défaut
    Bonjour,

    J'ai un peu modifié le script :

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !443$
    RewriteRule ^(.*) https://localhost/model/ [R=301,L]
    RewriteRule (.+)\.(.+)\.(.+)\.html$ /model/index.php?lang=$1&mod=$2&page=$3 [L]

    CA fonctionne très bien, mais reste mon autre problème, ce n'est pas vraiment une erreur, mais plutôt un accès dont je ne veux pas.

    Si je tappe :
    https://localhost/model/?lang=en&mod=session&page=index, le système va sur la page demandée, hors je voudrais qu'on ne puisse arriver sur la page que par celle officielle :
    https://localhost/model/en.session.index.html

    D'ailleur je viens de penser que là c'est en local, mais quand je serais en production, il faudrait que l'accès soit uniquement sur https://www.domaine.com et non pas accessible sur https://domaine.com
    J'ai cru voir une solution à ce problème sur le forum, je vais la rechercher à nouveau.

    Si vous pouvez m'aider pour le problème d'adresse plus hat ça serait cool, je m'arrache la tête depuis 3 jours :-)

    A bientôt et merci.

  5. #5
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Citation Envoyé par nazoreen
    Si je tappe :
    https://localhost/model/?lang=en&mod=session&page=index, le système va sur la page demandée, hors je voudrais qu'on ne puisse arriver sur la page que par celle officielle :
    https://localhost/model/en.session.index.html
    Il suffit de ne pas faire de lien avec la première url, mais toujours avec la seconde.
    Ainsi, personne ne connaitra la "veritable".

  6. #6
    Membre averti
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 263
    Points : 333
    Points
    333
    Par défaut
    Merci :-)

    C'est ce que j'ai fait jusqu'à présent...

    Je pensais qu'il y avait une solution directement incorporée dans le htaccess...

    Enfin bon, ce n'est pas trop grave, le principal c'est que le système fonctionne...

    Si ça peut en aider quelques-uns, voici le code correct pour ce que je voulais faire, j'ai vu que je n'étais pas le seul à chercher la solution :

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !443$ [OR]
    RewriteCond %{SERVER_NAME} !^www\.domaine\.com$ [NC]
    RewriteRule ^(.*)$ https://www.domaine.com/ [QSA,R=301,L]
    RewriteRule ^(.*)\.(.*)\.(.*)\.html$ index.php?var1=$1&var2=$2&var3=$3 [NC,L]

    J'ai couplé le tout avec une vérification de certificat client, ainsi il y a vérification du serveur et du client sans même avoir besoin de couple login/password...

    Enfin pour la sécurité, il vaut quand même mieux ajouter un système d'identification supplémentaire ;-)

    A bientôt...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [URL rewriting] Forcer une URL
    Par airmess dans le forum Apache
    Réponses: 7
    Dernier message: 25/05/2010, 17h37
  2. Réponses: 1
    Dernier message: 23/06/2009, 20h35
  3. Réécriture d'url avec ISAPI Rewrite
    Par droudrou2000 dans le forum IIS
    Réponses: 0
    Dernier message: 14/04/2009, 12h14
  4. Rewrite URL avec 2 sites en parallèle
    Par gigraphe dans le forum Apache
    Réponses: 2
    Dernier message: 22/09/2008, 12h41
  5. Réponses: 2
    Dernier message: 18/04/2007, 19h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo