You don't have permission to access /iii on this server.

Nouveau WRInaute
Bonjour,

Je veux pouvoir utiliser une url du type :
De :
http://domaine.com/iii
Vers :
http://domaine.com/voir.php?ref=iii

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)$ voir.php?ref=$1

Je ne peux pas voir si ça marche, j'ai le message d'erreur suivant :
You don't have permission to access /iii on this server. (erreur 403)

Et si je retire mon fichier htaccess, j'ai une erreur 404 (ce qui est normal).

Quelqu'un a une idée ?
Merci !
 
WRInaute passionné
Salut chatlumo et bienvenue sur WRI !

Avec le -F (majuscule), tu forces Apache à effectuer une sous-requête interne qui vérifie si tu as les permissions d'accès à /iii . Comme tu ne les as pas, et pour cause... ça foire en te balancant un 403 - tout à fait normal ! :lol:

Essaie avec -f (en minuscule)

Donc, en adaptant pour ton répertoire /home:
Code:
RewriteCond /home/login/www/%{REQUEST_FILENAME} !-f

Dan
 
Nouveau WRInaute
en remplaçant -F par -f j'ai le même résultat.

Dois-je obligatoirement faire précéder de /home/login/www/ (= équivalent pour mon serveur) ?
 
WRInaute passionné
chatlumo a dit:
en remplaçant -F par -f j'ai le même résultat.

Dois-je obligatoirement faire précéder de /home/login/www/ (= équivalent pour mon serveur) ?
Ben oui, comme ton serveur http n'a pas accès à la racine /
Tu peux aussi précéder le RewriteCond par:
Code:
RewriteBase /home/login/www/

Dan
 
WRInaute passionné
Tu as essayé ?
Code:
RewriteCond /home/login/www/%{REQUEST_FILENAME} !-f

Le RewriteBase n'est peut-être pas supporté chez ton hébergeur. Comme tu ne donnes pas l'URL de ton site, on ne peut pas savoir.
 
Nouveau WRInaute
Bon je viens de faire un autre test, je suis désespéré.

L'exemple avec trouve.html fonctionne donc correctement.

J'ai voulu testé le .htacces avec ça dedans :

Code:
RewriteEngine on
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ article.php?numero=$1&page=$2 [L]

Puis j'ai créé une page article.php avec dedans

Code:
<?php echo $numero."<br>".$page ?>

Et ça ne fonctionne pas. Pire, je n'ai pas accès à la racine du serveur... :
http://www.abberts.com/
 
WRInaute occasionnel
je comprends pas l'intérêt de ca:
Code:
RewriteCond %{REQUEST_FILENAME} !-F
Si vous pouvez m'éclairer...
 
Nouveau WRInaute
D'après ce que j'avais compris c'est pour tester si le répertoire existe. Mais je ne suis pas l'expert de l'URL rewriting ici ;)
 
WRInaute occasionnel
Moi si j'étais toi je me passerais de ca après ca devrait marché sans pb.
Ce que tu peux faire par contre c'est dans le fichier voir.php tester si le rep existe effectivement et si ce n'est pas le cas balancer une erreur 404.
 
Nouveau WRInaute
Pour vous donner des nouvelles si ça vous intéresse...

Ne fonctionnant toujours pas, j'ai intégré ce bout de code du .htaccess dans le httpd.conf :

Code:
RewriteEngine On
RewriteRule ^/forums/article_([0-9]*)_([0-9]*)_([0-9]*).html /article.php?numero=$1&pag=$2&post=$3

Et ça marche !

Je ne sais pas pourquoi cela ne fonctionne pas avec l'htaccess mais si cette solution fonctionne ça me sauve.

Y'a-t-il moyen de rendre facultatif les 3 variables _([0-9]*)_([0-9]*)_([0-9]*). ?
afin d'aboutir sur article.php?numero=$1&pag=$2 si je n'ai que 2 variables.

Merci !
 
WRInaute occasionnel
tu ecris simplement une 2ème règle comme celle-ci:
Code:
RewriteRule ^/forums/article_([0-9]*)_([0-9]*).html /article.php?numero=$1&pag=$2
 
Nouveau WRInaute
Juste pour ceux qui pourraient être dans un cas identique, il a fallu que j'ajoute :

Code:
Options +SymlinksIfOwnerMatch

en tête de mon fichier .htacces et je peux donc enfin mettre des règles de redirection dans un .htacess

Ouf !

Et merci à Dan pour avoir dépenser de son temps :wink:
 
Discussions similaires
Haut