2009-05-18 23 views
6

Saludos,redireccionamiento 301 a index.html/o /index.php

acabo de mover de un sitio web de IIS a Apache y estoy tiene problemas para redirigir el archivo de índice sin provocar un bucle infinito.

Ambos de estos de forma individual provocará una loop-

redirección 301 /index.htm /index.php

redirección 301 /index.htm http://www.foo.com/

A continuación se muestra una copia de mi actual. htaccess. ¿Alguien me puede ayudar? Tengo un montón de enlaces señaló http://www.foo.com/index.htm que me gustaría 301 redirigir a 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 para alejarse de IIS a Apache – eleven81

+0

@ eleven81 - Niza. –

Respuesta

6

¿Por qué haces esto? Por qué no añadir index.php a su host/config como una extensión de índice válido

DirectoryIndex index.html index.php 

Y a continuación, elimine el archivo HTML>

o

DirectoryIndex index.php 
0

Estoy de acuerdo con el comentario de Kender sobre la redirección lazo. Posiblemente la forma redonda que es tener

DirectoryIndex notindex.html

junto con sus redirecciones, a continuación, poner la primera página real en notindex.html. No estoy claro qué pasa con las personas que usan /index.html si esa página realmente existe.

+0

Tener ambos http://www.example.com/ y http://www.example.com/index.html yendo a la misma página es lo que Google llama "contenido duplicado" y * puede * crear un problema de SEO. Y, además de posibles problemas de referencia, me parece feo. Una URL, una página. – bortzmeyer

0

no se me permite añadir hipervínculos sin embargo, ya que soy un nuevo usuario, así que cuando me haya escrito "foo" simplemente asumir que eso es la dirección URL completa ...

Para redirigir foo/index. PHP para foo/sin el bucle, utilice otra regla de reescritura:

RewriteRule index.php foo/ [R=301] 

es posible que necesite usar /index.php dependiendo de lo que se establece como RewriteBase (y el número de directorios que tiene un index.php en) .

1

Usted tendría que comprobar el valor de REQUEST_URI así:

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