Aller au contenu

[Résolu]2 problèmes avec .htaccess


ecatomb

Messages recommandés

Bonjour,

Je débute avec .htaccess et je n'ai pas trop trouvé d'explication à mes problèmes.

Problème 1:

J'aimerais rediriger les adresses du type: monsite.net/rep/page.php vers monsite.net/page.php?var=rep (le nom rep est connu d'avance).

J'ai donc essayé le fichier .htaccess suivant dans le répertoire monsite.net/rep/ mais ça ne fonctionne pas (il me semble que le [L] est nécessaire mais je n'ai pas trop compris à quoi ça sert)

RewriteEngine on
RewriteRule monsite.net/rep/(.*).php monsite.net/$1.php?var=rep [L]

D'ailleurs celui-ci non plus:

RewriteEngine on
RewriteRule monsite.net/rep/test\.php monsite.net/rep/fichier.php [L]

Je ne peux pas modifier le fichier .htaccess qui se trouve à la racine de mon site (cela est dû à mon hébergeur) qui est le suivant:

################################## Errors ######################################
#ErrorDocument 301 /error/301-moved_permanently.html
#ErrorDocument 302 /error/302-moved_temporarily.html
#ErrorDocument 303 /error/303-see_other.html
#ErrorDocument 400 /error/400-bad_request.html
ErrorDocument 401 /error/401-authorization_required.html
#ErrorDocument 402 /error/402-payment_required.html
ErrorDocument 403 /error/403-forbidden.html
ErrorDocument 404 /error/404-not_found.html
#ErrorDocument 405 /error/405-method_not_allowed.html
#ErrorDocument 406 /error/406-not_acceptable.html
#ErrorDocument 407 /error/407-proxy_authentication_required.html
ErrorDocument 408 /error/408-request_timed_out.html
#ErrorDocument 409 /error/409-conflicting_request.html
#ErrorDocument 410 /error/410-gone.html
#ErrorDocument 411 /error/411-content_length_required.html
#ErrorDocument 412 /error/412-precondition_failed.html
#ErrorDocument 413 /error/413-request_entity_too_long.html
#ErrorDocument 414 /error/414-request_uri_too_long.html
#ErrorDocument 415 /error/415-unsupported_media_type.html
ErrorDocument 500 /error/500-internal_server_error.html
#ErrorDocument 501 /error/501-not_implemented.html
#ErrorDocument 502 /error/502-bad_gateway.html
ErrorDocument 503 /error/503-service_unavailable.html
#ErrorDocument 504 /error/504-gateway_timeout.html
#ErrorDocument 505 /error/505-http_version_not_supported.html
################################################################################

######################### Howto map /~user to /user ############################
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([^/]+)$
RewriteCond %{DOCUMENT_ROOT}/%1 !-d
RewriteCond /home/sites/%{SERVER_NAME}/users/%1 -d
RewriteRule ^([^/]+)$ http://%{HTTP_HOST}/$1/ [R,L]
RewriteCond %{REQUEST_URI} ^/([^/]+)/
RewriteCond %{DOCUMENT_ROOT}/%1 !-d
RewriteCond /home/sites/%{SERVER_NAME}/users/%1 -d
RewriteRule ^([^/]+)(.+)$ /~$1/$2
################################################################################

###################### Howto map /users/user to /users/user ####################
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/users/([^/]+)$
RewriteCond %{DOCUMENT_ROOT}/%1 !-d
RewriteCond /home/sites/%{SERVER_NAME}/users/%1 -d
RewriteRule ^users/([^/]+)$ http://%{HTTP_HOST}/users/$1/ [R,L]
RewriteCond %{REQUEST_URI} ^/users/([^/]+)/
RewriteCond %{DOCUMENT_ROOT}/%1 !-d
RewriteCond /home/sites/%{SERVER_NAME}/users/%1 -d
RewriteRule ^users/([^/]+)(.+)$ /~$1/$2
################################################################################

donc RewriteRule doit bien marcher?

Problème 2:

J'aimerais que les image que j'héberge sur mon site ne soit pas affichable sur les autres sites/forum avec une simple balise image. Mais qu'un lien s'il est ouvert marche (comme monsite/repimage/image.jpg).

Tout cela pour économiser de la bande passante. Je précise que les images sont affichés directement sur les page de mon site.

Mais là aussi je n'arrive pas à faire marcher correctement le fichier .htaccess qui est le suivant:

<Files *.jpg>
Order Allow, Deny
Deny from all
Allow from monsite.net
</Files>

Les images sont bien bloquées ... mais partout (y compris sur mon site) :transpi:

A quoi sert

Order Allow, Deny
? Quelque fois je l'ai vu écrit dans l'autre sens, est-ce que l'ordre a une importance?

Merci d'avance pour votre aide car je ne vois pas du tout pourquoi ça ne marche pas.

Lien vers le commentaire
Partager sur d’autres sites

Concernant le deuxième point, je pense qu'il faudrait plutôt que tu mettes :

<Files *.jpg>
Order Deny, Allow
Deny from all
Allow from monsite.net
</Files>

A tester mais ce serait beaucoup plus logique.

Avant, tu acceptais tonsite et après tu fermais tout. Maintenant, tu fermes tout, puis tu acceptes ton site. :iloveyou:

Lien vers le commentaire
Partager sur d’autres sites

Concernant le deuxième point, c'est normal que ça ne marche pas, et la solution d'au-dessus non plus.

Normal, il y a très peu de chance que ton serveur navigue sur ton site.

Un visiteur ne "viendra" jamais de monsite.net, il viendra toujours de son ip.

A moins que ton serveur serve de proxy web à tes visiteurs, auquel cas, ça marcheras, et tu peut oublier ce que je viens de dire.

Le truc que tu veux faire pour les images passe par un Rewrite rule sur tes jpg, en vérifiant que le referer correspond à ton site, mais malheureusement, ça peut se désactiver dans le navigateur (protection de la vie privée) et donc il verrais jamais tes images.

Tu peux essayer en PHP, vérifier qu'il est sur ton site avec des sessions, et faire envoyer l'image par le php, mais je suis pas sur.

Lien vers le commentaire
Partager sur d’autres sites

Concernant le deuxième point, c'est normal que ça ne marche pas, et la solution d'au-dessus non plus.

Normal, il y a très peu de chance que ton serveur navigue sur ton site.

Un visiteur ne "viendra" jamais de monsite.net, il viendra toujours de son ip.

A moins que ton serveur serve de proxy web à tes visiteurs, auquel cas, ça marcheras, et tu peut oublier ce que je viens de dire.

Le truc que tu veux faire pour les images passe par un Rewrite rule sur tes jpg, en vérifiant que le referer correspond à ton site, mais malheureusement, ça peut se désactiver dans le navigateur (protection de la vie privée) et donc il verrais jamais tes images.

Tu peux essayer en PHP, vérifier qu'il est sur ton site avec des sessions, et faire envoyer l'image par le php, mais je suis pas sur.

Ok merci pour cette information. Il faut donc que j'arrive à faire fonctionner le rewriterule ....

Est-ce que vous n'auriez pas un exemple qui me permettrais de vérifier que la fonction rewrite marche?

Genre, si on va dans un répertoire, on est redirigé vers une page spécifique du répertoire?

Lien vers le commentaire
Partager sur d’autres sites

RewriteEngine on

RewriteRule ^toto.tutu$ /test_pci/fichier_reel.ext

Dans mon cas, quand je suis allé sur ***.fr/test_pci/toto.tutu, ca m'a bien renvoyé le fichier

Le htacces était dans le rep test_pci

Merci. Ca m'a énormément aidé, je ne pensais pas qu'il ne fallait pas le nom du répertoire à gauche et qu'il en fallait un à droite.

Voici mon htaccess maintenant:

RewriteEngine on
RewriteRule ([a-z].*).php ../$1.php?var=rep [L]
RewriteRule ([a-z].*) ../$1

Toute mes page php commencent par une lettre et le htaccess ne marche pas avec simplement (.*) d'où le ([a-z].*).

La dernière ligne est là pour rediriger les liens des images/css et js.

(Problème 1 résolu)

Il ne me reste plus qu'à résoudre le problème 2 mais ça devrait être plus facile maintenant ^_^

Lien vers le commentaire
Partager sur d’autres sites

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?toto\.fr/ [NC]
RewriteRule .*\.(gif|jpg|png)$ /pas_de_lien.jpg [NC,L]

ou RewriteRule .*\.(gif|jpg|png)$ - [NC,F,L]

Mais comme je te le disais, suffit de desactiver l envoi du referer dans son navigateur pour "sauter" cette protection.

Lien vers le commentaire
Partager sur d’autres sites

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?toto\.fr/ [NC]
RewriteRule .*\.(gif|jpg|png)$ /pas_de_lien.jpg [NC,L]

ou RewriteRule .*\.(gif|jpg|png)$ - [NC,F,L]

Mais comme je te le disais, suffit de desactiver l envoi du referer dans son navigateur pour "sauter" cette protection.

Faire sauter cette protection n'est pas vraiment gênant. Car c'est juste pour éviter qu'on affiche mes image dans les forums.

Bon ça bloque l'affichage des images ... mais aussi sur mon site :francais:

J'ai bien remplacé le toto.fr par le nom de mon site, par contre le htaccess est dans un sous-répertoire. Ca peut influer?

Lien vers le commentaire
Partager sur d’autres sites

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?toto\.fr/ [NC]
RewriteRule .*\.(gif|jpg|png)$ /pas_de_lien.jpg [NC,L]

ou RewriteRule .*\.(gif|jpg|png)$ - [NC,F,L]

Mais comme je te le disais, suffit de desactiver l envoi du referer dans son navigateur pour "sauter" cette protection.

Faire sauter cette protection n'est pas vraiment gênant. Car c'est juste pour éviter qu'on affiche mes image dans les forums.

Bon ça bloque l'affichage des images ... mais aussi sur mon site :down:

J'ai bien remplacé le toto.fr par le nom de mon site, par contre le htaccess est dans un sous-répertoire. Ca peut influer?

Bon j'ai récupéré un truc sur un autre site et ça fonctionne maintenant.

La seule différence est la suivante:

RewriteRule .*\.(jpg|gif|png)$ /fansite.png [R,L]

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...