web-dev-qa-db-fra.com

Quel est le problème avec mon htaccess? (Erreur 500)

J'ai écrit un petit fichier htaccess pour rediriger les utilisateurs d'Internet Explorer vers une page spécifique. Voici le contenu:

# MS Internet Explorer - Mozilla v4
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4(.*)MSIE
RewriteRule ^index\.php$ /sorry.php [L]

# All other browsers
#RewriteRule ^index\.html$ /index.32.html [L]

Avez-vous une idée du pourquoi cela donnerait une erreur de 500 serveur interne? J'ai utilisé le mod rewrite auparavant, donc j'ai chargé le module ici ...

1
Dany Khalife

J'ai finalement eu une bonne réponse du support. On dirait que, pour une raison quelconque, j'ai besoin de RewriteBase / dans chaque fichier .htaccess qui utilise le mod rewrite pour que ce module fonctionne correctement, idk pourquoi, mais cela semble résoudre le problème. Merci pour tous les bons commentaires tho :)

1
Dany Khalife

Essayez d’utiliser la directive RewriteLog: elle vous aidera à localiser de tels problèmes:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

Puis dites-moi ce que cela donne comme commentaire et je mettrai à jour ma réponse pour vous aider.

1
Olivier Pons

Cela fonctionne pour moi, j'ai changé ^ Mozilla/4 (. ) MSIE en! ^ Mozilla/4 (. ) MSIE pour le tester avec n'importe quel autre navigateur . Normalement, une erreur HTTP 500 lors de la modification de votre htaccess signifie que quelque chose est incorrect avec le fichier htaccess. Copié du manuel Apache à l'adresse http://httpd.Apache.org/docs/2.0/misc/rewriteguide.html

RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/4.*
RewriteRule ^foo\.html$         foo.NS.html          [L]

Certaines versions ou installations d’Apache n’aiment pas les redirections sans une URL complète: (un serveur sur lequel je travaille)

RewriteRule ^index\.php$ http://www.example.com/sorry.php [L]

Différentes sélections de navigateur peuvent être écrites comme ci-dessous:

# Mozilla 4/5 Browsers 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[4-5]\.[0-9]+\ \(compatible;\ MSIE\ [3-9]\.[0-9.]+
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[4-5]\.[0-9]+\ \(Macintosh;\ .+\)\ \AppleWebKit/[1-9]\.[0-9.]+\ \(KHTML,\ like\ Gecko\)\ \Safari/[0-9]{3,8}$
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[4-5]\.[0-9]+\ \(Macintosh;\ I;\ PPC\)$ 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[4-5]\.[0-9]+\ \(X11;\ U;\ Linux\ i686;\ [a-z]{2}-[A-Z]{2};\ rv:[1-9]\.[0-9.]+\)\ Gecko/Debian-[1-9]\.[0-9.]+-[0-9]+\ Galeon/[2-9]\.[0-9.]+\ \(Debian\ package\ [2-9]\.[0-9.]+-[0-9]+\)$ 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[4-5]\.[0-9]+\ \(compatible;\ Konqueror/([0-9]+\.)+[0-9]+.+\ 20[0-9]{6}\)$ 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[4-5]\.[0-9]+\ \(compatible;\ Konqueror/([0-9]+\.)+[0-9]+;\ Linux\)\ \(KHTML,\ like\ Gecko\)$ 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[4-5]\.[0-9]+\ \(.+;\ rv:([0-9]+\.)+[0-9a-z]+\)\ Gecko/20[0-9]{6} 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[4-5]\.[0-9]+\ WebTV/([0-9]+\.)+[0-9]+\ \(compatible;\ MSIE\ [5-9]\.[0-9]+ 
# Others 
RewriteCond %{HTTP_USER_AGENT} ^Avant\ Browser\ \(http://www\.avantbrowser\.com\)$ 
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Internet\ Explorer/[34]\.[0-9]{1,2} 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/(3\.01¦4\.0)\ \(compatible;\)$ 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[3-4]\.[0-9]+\ \[[a-z]{2}\](\ \(.+\))? 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(PSP\ \(PlayStation\ Portable\);\ [0-9.]+\)$ 
RewriteCond %{HTTP_USER_AGENT} ^Opera/[5-9]\.[0-9]+ 
1
James Williams