2010-10-13 6 views
0

J'ai fait un .htaccess que j'ai utilisé sur tous les hôtes jusqu'à celui-ci pour réécrire index.html au domaine racine..htaccess ne fonctionnera pas sur le serveur Linux 1 mais sur le serveur 2?

Ce code

Options +FollowSymLinks 
RewriteCond %{THE_REQUEST} ^.*/index.html 
RewriteRule ^(.*)index.html$ http://www.domain.co.uk/ $1 [R=301,L] 
RewriteCond %{THE_REQUEST} ^.*/index.php 
RewriteRule ^(.*)index.php$ http://www.domain.co.uk/ $1 [R=301,L] 

RewriteEngine on 
RewriteBase/
RewriteRule ^index\.(htm|html|php) http://www.domain.co.uk/ [R=301,L] 
RewriteRule ^(.*)/index\.(htm|html|php) http://www.domain.co.uk/$1/ [R=301,L] 
RewriteCond %{HTTP_HOST} ^domain\.co.uk 
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [R=permanent,L] 

Mais hélas, il ne fonctionnera pas sur vidahost.com quand ils sont encore soi-disant même serveur et ce code a travaillé sur des serveurs pendant des années, donc je doute que ce soit un sur serveur date problème de mise à niveau.

Ils ne peuvent pas le faire non plus et je suis bloqué. Toute l'aide a remercié à l'avance.

+0

Est-ce que d'autres règles fonctionnent? Essayez celui-ci au-dessus de vos autres règles pour voir si mod_rewrite est disponible à tous: 'RewriteRule^http://example.com [L, R]' – Gumbo

+0

Oui la règle pour écrire le nom d'hôte à www fonctionne bien. Juste pas la règle d'écrire index.html au domaine racine. Je trouve cela trop étrange car cela fonctionne parfaitement sur tous mes autres hôtes. – Mark

Répondre

0

Cela pourrait être un problème de configuration d'Apache - vous devez être autorisé à utiliser mod_rewrite dans la configuration principale d'Apache. En outre, RewriteEngine doit généralement être avant toute autre commande mod_rewrite, même si cela fonctionnait déjà pour vous, ce n'est peut-être pas le problème ici.

+0

Cool mais la règle de réécriture pour que le nom d'hôte www fonctionne n'est pas la règle pour faire index.html directement à root. – Mark

+0

@Mark Je me méfie de l'emplacement de vos directives RewriteEngine et RewriteBase. Qu'est-ce qui change si vous les mettez au début? En outre, que se passe-t-il si vous modifiez RewriteBase sur le chemin physique de votre répertoire Web (peut-être/home/accountname/public_html ou similaire)? – Andrew

+0

J'ai ajouté un index.php et cela a fonctionné. Il semble qu'il ignorait le fichier .html. Merci tout le monde. – Mark

0

Eh bien, tout d'abord, vous devez publier la configuration de l'hôte virtuel et vous pouvez également activer le débogage de réécriture de mode.

RewriteLog path-to-log-file 
RewriteLogLevel number-0-9- /zero is disabled/ 

Il peut vous aider à trouver ce qui est mal.

Questions connexes