[Apache] Erreur Forbidden avec une URL contenant des espaces

Tags: #<Tag:0x00007f50a1829260>

Bonjour,

Sur mon serveur local, j’obtiens l’erreur suivante lorsque l’URL contient des espaces (ou %20) :

Forbidden

You don’t have permission to access this resource.

Mon fichier .htaccess contient :
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA] 

Je n’arrive pas à voir d’où vient le problème. Qui a une idée ?

salut
donnes plus d’infos
en particulier, tu penses que ça vient des espaces, mais peut etre que non.

A tester :

mettre ton fichier html en chmod 777 dans un dossier sans ton .htaccess : NE PAS FAIRE

mais comme ça, je mettrais

RewriteRule "^(.*)$" index.php?rt=$1 [L,QSA]

non !
on ne mets jamais un fichier avec ces droits particuliers dans son espace web, même pour tester !

2 J'aime

même un fichier html?

  • j’aurais pu dire la même chose ( ne pas mettre 777 ) mais c’est fatigant de voir des questions avec aussi peu d’info : si on dit qu’on n’a pas les permissions, alors on donne au minimum les permissions/owner
  • de plus le fichier htaccess donné est tronqué ( Mon fichier .htaccess contient : )
  • il dit que ça vient des espaces mais on n’a pas d’exemples
  • on n’a pas les version ( ubuntu dapper? debian 2? )

Même avec un fichier HTML !
Qui te dit que demain, ce très mauvais conseil ne sera pas utilisé pour tout autre fichier par la personne ou d’autres…et ne permettra pas ainsi l’accès au reste du système
Qui te dit dit que demain des failles ne seront pas découverte, même au-travers du langage HTML - pour rappel, pendant longtemps, on n’imaginait pas que fichiers d’images figés (ex : JPEG) ne permettraient pas des attaques.
Un droit utilisateur 777 permet beaucoup de choses à quelqu’un de bien acharné.
(dire que sous OpenBSD, je peux même pour le web, avoir des chmod 0705 !!!)

oui… et mon conseil : dans ce cas, prend le large et ne répond pas.
(parce que tu n’es pas dans les bonnes dispositions pour aider) :wink:

Je n’obtiens cette erreur que pour les noms de page contenant des espaces.

Il n’y a pas de fichier .html, seulement des scripts PHP.

Le error.log d’Apache contient :
[Mon May 01 10:21:14.511183 2023] [rewrite:error] [pid 2136] [client 127.0.0.1:49274] AH10411: Rewritten query string contains control characters or spaces

Je ne constate aucun changement avec la RewriteRule modifiée.

J’ai trouvé la solution ici : il y a eu un changement dans le fonctionnement de l’URL rewriting d’Apache.

J’ai du modifier le .htaccess :
RewriteRule "^(.*)$" index.php?rt=$1 [L,QSA,B,BNP]

tu as raison
dans mon esprit, il s’agit évidemment d’un test ultra temporaire pour enlever certaines erreurs ( que je n’aurais pas proposé si on avait eu directement les utilisateurs/groupes/permissions/noms/noms par éditeur hexa des dossiers et fichiers problématiques ET url utilisées) ; je corrige donc dans mon post

1 J'aime