Bonjour,
J'ai un soucis avec un htaccess, je dispose d'une arboresence comme celle-ci :
index.php
admin/
admin/index.php
J'essaye de realiser un htaccess qui conduirais toutes les requettes vers index.php sauf si ya un / (pour aller dans admin/)
J'ai essayer de lui dire: ne doit pas contenir / , mais il veut pas marche :
RewriteEngine On
RewriteRule [^/]* index.php [NC,L]
Mais ça ne marche pas, comment je pourais faire pour lui dire que si l'url contient un /, tu ne passe pas par index.php ?
Merci.
# URL qui contient /
Posté par peck (site web personnel) . Évalué à 2.
[^] # Re: URL qui contient /
Posté par manyArg . Évalué à 1.
Je cherche à faire un !strstr($chaine, '/') version htaccess
Disons que j'ai une arboresence :
.htaccess <---
cms.php
admin/
admin/pleins de trucs dans admin/
le lien direct vers cms.php est : http://monsite.com/cms.php
J'utilise la reecriture url pour gerer par exemple : http://monsite.com/une-page-54.html , mais dont les urls peuvent changer de type.
Mais je me rend compte qu'avec [^/] je n'arrive pas à acceder au dossier admin (http://monsite.com/admin/ me renvoie toujours à cms.php).
Donc il me faudrais pouvoir dire à Apache: tu redirige toutes les requettes vers cms, sauf si elle contiennent un /
[^] # Re: URL qui contient /
Posté par Ben . Évalué à 2.
B.
[^] # Re: URL qui contient /
Posté par Raphaël G. (site web personnel) . Évalué à 2.
<Directory /var/www/html>
# Allow from all
Order deny,allow
Allow from all
# Allow index and symlink
Options Indexes SymLinksifOwnerMatch
# Deny .htaccess
AllowOverride None
# Rewrite url
<IfModule mod_rewrite.c>
RewriteEngine On
# redirige toutes les requêtes non /robots.txt, non /admin.*
# et pas existant sur index.php
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* index.php [L]
# redirige toutes les requêtes commençant pas /admin vers ce rep
RewriteCond %{REQUEST_URI} ^/admin
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* admin/index.php [L]
</IfModule>
</Directory>
Par contre fait gaffe, ton site pourra plus utiliser certaines variable de $_SERVER, tu va devoir reparser seul le $_SERVER['REQUEST_URI'], mais c'est facile.
# ???
Posté par account . Évalué à 2.
Si c'est ça, tu peux juste utiliser la directive ErrorDocument et les code HTTP kivonbien :
ErrorDocument 400 /index.php
ErrorDocument 401 /index.php
ErrorDocument 403 /index.php
ErrorDocument 404 /index.php
Sinon, tu peux rajouter un "deny from all" pour tous les autres fichiers + ErrorDocument :
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
<Files *.inc>
Order allow,deny
Deny from all
</Files>
ErrorDocument 400 /index.php
ErrorDocument 401 /index.php
ErrorDocument 403 /index.php
ErrorDocument 404 /index.php
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.