J'ai un problème de longue date avec mod_rewrite et l'hébergement partagé de 1and1 (j'espère que le fait qu'il s'agisse d'un hébergement partagé ne va pas faire migrer cela vers 'sharedserverfault'). Tout fonctionne parfaitement en ce qui concerne les règles de réécriture - sauf quand 'index' est dans le chemin. Alors j'obtiens une erreur 404 d'Apache.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
Jusque là, c'est assez standard, cela fonctionne bien sur la plupart des serveurs. Sur le serveur de 1and1, je reçois une erreur 404 si index est le répertoire principal. Tout ce qui commence par 'http://example.com/index' donnera une erreur 404.
- http://example.com/index
- http://example.com/index/action
- http://example.com/index/what/ever.anything
Si je copie index.php en bootstrap.php et que je modifie le fichier .htaccess pour pointer dessus et supprime index.php, cela fonctionnera.
Cependant, cela rend la mise à jour du serveur difficile - avez-vous des idées sur les paramètres d'Apache qui provoquent cela ? Évidemment je ne peux pas changer le fichier de configuration principal, mais je peux substituer des paramètres avec le fichier .htaccess.