Après un jour ou deux, je me bats toujours avec Mod Rewrite. Il semble que 60% de mon temps de développement est consacré à la lutte contre le serveur.Mod Rewrite ignorer -d
Ma structure d'URL actuelle est telle que tous les http://example.com/xyz et http://example.com/xyz/abc doivent être gérés par index.php. Le problème est que j'ai une section http://example.com/admin/, qui est un véritable répertoire que je dois être accessible par requête HTTP (il est le répertoire CMS)
Lorsque je tente de parcourir la CMS http://example.com/admin/, il change mon URL http://example.com/admin/?n=admin et renvoie un 404. Mon index.php reçoit n = admin comme argument.
Ce que je ne comprends pas est pourquoi ces deux conditions sont ignorées.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^admin(?:\/)?$
Et pourquoi je reçois redirigeant à http://example.com/admin/?n=admin (plutôt que simplement arrêter à http://example.com/admin/
Options +FollowSymlinks
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^admin(?:\/)?$
# allow access to certain subdirectories.
RewriteRule ^admin(?:\/)?$ /admin/ [L,NC]
# redirect all old URLs to new pages (or 404 sitemap page if no analog?).
RewriteRule ^company/about(?:\/)?$ /company [R=301,L,NC]
# catch any others and try to serve them right
RewriteRule ^/?(.+).html$ /$1 [R=301,L]
RewriteRule ^/?([0-9]+)(?:\/)?$ /index.php?p=$1 [L]
RewriteRule ^/?([-a-zA-Z0-9_+]+)(?:\/)?$ /index.php?n=$1 [L]
RewriteRule ^/?([-a-zA-Z0-9_+]+)/([-a-zA-Z0-9_+]+)(?:\/)?$ /index.php?n=$2 [L]
Can quiconque offre des idées ou signaler les défauts dans le .htaccess?
Pour résumer ma question, je ne peux pas accéder à un répertoire qui existe sur le serveur, car le réécriture du mod me redirige. Cela ne devrait pas arriver parce que je mets RewriteCond% {REQUEST_FILENAME}! -d –
Question à essayer, change l'avant-dernier ou le dernier Règle de ... php? N = ... à ... phph? M = ... pour voir quelles règles sont en vigueur. Aussi comment est-ce que vous dites qu'il redirige vers admin /? N = admin, mais vous référez à index.php obtenir le paramètre n = admin –