2009-05-18 4 views
6

Salutations,301 redirect index.html/ou index.php

Je viens de déplacer un site Web d'IIS à Apache et ai un peu de mal à rediriger le fichier d'index sans provoquer une boucle infinie.

Ces deux seront individuellement un causer boucle-

Redirect 301 /index.htm /index.php

Redirect 301 /index.htm http://www.foo.com/

Voici une copie de mon courant. htaccess. Est-ce que quelqu'un peut m'aider? J'ai un tas de liens a souligné http://www.foo.com/index.htm que je voudrais redirection 301 vers http://www.foo.com/

RewriteEngine On 

########## Begin - Rewrite rules to block out some common exploits 
## If you experience problems on your site block out the operations listed below 
## This attempts to block the most common type of exploit `attempts` to Joomla! 
# 
# Block out any script trying to set a mosConfig value through the URL 
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] 
# Block out any script trying to base64_encode crap to send via URL 
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] 
# Block out any script that includes a <script> tag in URL 
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] 
# Block out any script trying to set a PHP GLOBALS variable via URL 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
# Block out any script trying to modify a _REQUEST variable via URL 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
# Send all blocked request to homepage with 403 Forbidden error! 
RewriteRule ^(.*)$ index.php [F,L] 
# 
########## End - Rewrite rules to block out some common exploits 

# Uncomment following line if your webserver's URL 
# is not directly related to physical file paths. 
# Update Your Joomla! Directory (just/for root) 

# RewriteBase/

########## Begin - Joomla! core SEF Section 
# 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|\.cfm|/[^.]*)$ [NC] 
RewriteRule (.*) index.php 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
# 
########## End - Joomla! core SEF Section 

Redirect 301 /a /administrator 
+0

+1 pour déplacer loin de IIS à Apache – eleven81

+0

@ eleven81 - Nice. –

Répondre

6

Pourquoi faites-vous cela? Pourquoi ne pas ajouter index.php à votre vhost/config comme une extension d'index valide

DirectoryIndex index.html index.php 

Et puis supprimez le fichier HTML>

ou

DirectoryIndex index.php 
0

Je suis d'accord avec le commentaire de Kender sur le redirect boucle. Peut-être le tour est d'avoir

DirectoryIndex notindex.html

avec vos réoriente, puis mettre la première page réelle notindex.html. Je ne sais pas ce qui ne va pas avec les gens qui utilisent /index.html si cette page existe vraiment?

+0

La page http://www.example.com/ et http://www.example.com/index.html contient à la fois ce que Google appelle du "contenu dupliqué" et il peut * créer * un problème de référencement. Et, en plus des problèmes de référencement possibles, je trouve ça moche. Une URL, une page – bortzmeyer

0

Je ne suis pas autorisé à ajouter des liens hypertextes encore, comme je suis un nouvel utilisateur, alors quand je l'ai tapé « foo » simplement supposer que des thats l'URL complète ...

Pour rediriger foo/index. php à foo/sans la boucle, utilisez une autre règle de réécriture:

RewriteRule index.php foo/ [R=301] 

vous pourriez avoir besoin d'utiliser index.php en fonction de ce que votre RewriteBase est défini comme (et combien de répertoires que vous avez un index.php in) .

1

Vous devrez vérifier la valeur de REQUEST_URI comme ceci:

RewriteCond %{REQUEST_URI} ^/index.htm$  # If REQUEST_URI == "/index.htm" 
RewriteRule (.*)/[R=301,L]    # Then 301 redirect to "/"