Redireccionar URL en PHP dentro del mismo dominio

  • Autor Autor mmpo16
  • Fecha de inicio Fecha de inicio
M

mmpo16

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
www.misitio.com/index.php a mi sitio www.misitio.com lo necesito en codigo php imposible desde .htaccess porque tengo ahi unas redirecciones que cuando activo desde ahi lo que pido altera la estructuras de unas urls bueno es un rollo.

Lo que necesito es como redireccionar
www.misitio.com/index.php a www.misitio.com pero solamente ese porqueh ay otros folders por ejemplo podria ser www.misitio.com/juegos/index.php ese no lo necesito redireccionar solamente el que esta en la raiz www.misitio.com/index.php

Espero me puedan ayudar es sumamente urgente.

PD: La redireccion es 301 y es en mi mismo dominio no hacia otra pagina.
 
Este código lo pegas en el header de tu sitio. Lo puedes hacer así:

PHP:
<?
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.misitio.com" );
?>
 
Me sale en el navegador que esa redireccion nunca acabara
 
Tienes que hacerlo con htcacces, no hay más.
 
Tienes que hacerlo con htcacces, no hay más.

Este es mi archivo .htaccess

Insertar CODE, HTML o PHP:
Options -Indexes
Options +FollowSymLinks

<IfModule mod_php5.c>
  php_value max_input_time                  7200
  php_value max_execution_time              7200
  php_value memory_limit                    2048M
  php_value magic_quotes_gpc                0
  php_value magic_quotes_runtime            0
  php_value register_globals                0
  php_value session.auto_start              0
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^misitio.com [NC]
    RewriteRule ^(.*)$ http://www.misitio.com/$1 [L,R=301]
   
    RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    RewriteCond %{QUERY_STRING} SELECT(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING} UNION(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING} UPDATE(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteRule ^(.*)$ index.php [L,QSA]
   
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault A1209600
  ExpiresByType text/html A1
  ExpiresByType text/html A1
  ExpiresByType text/html A1
  ExpiresByType text/html A1
</IfModule>

<ifModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file \.(html?|css|js)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

#FileETag MTime Size

#php_value xdebug.profiler_output_dir /tmp
#php_value xdebug.profiler_output_name cachegrind.out.%t.%p
#php_value xdebug.profiler_enable 1

Yo intente poner esto
Insertar CODE, HTML o PHP:
RewriteCond %{REQUEST_URI} ^/index\.php
RewriteRule ^.*$ http://%{HTTP_HOST} [R=301,L]
pero al poner eso em altera la estructura de otras urls al parecer interaccion con algo que esta ya definido en ese archivo y pone en una url de esta forma http://www.misitio.com/php?q=38454/lalalalalala y originalmente es asi http://www.misitio.com/38454/lalalalalala

Alguien me puede ayudar a indetificar porque cuando pongo esto se alteran otras cosas?
Insertar CODE, HTML o PHP:
RewriteCond %{REQUEST_URI} ^/index\.php
RewriteRule ^.*$ http://%{HTTP_HOST} [R=301,L]

Alguien me podria ayudar con esto? es sumamente urgente para mi
 
Última edición por un moderador:
PHP:
//con php podrias intentar esto

if(stristr($_SERVER['REQUEST_URI'], 'index.php')){

//solo detectara si hay index.php
header(sprintf("Location: http://%s/", $_SERVER['HTTP_HOST']));

}
 
Última edición:
PHP:
//con php podrias intentar esto

if(stristr($_SERVER['REQUEST_URI'], 'index.php')){

//solo detectara si hay index.php
header(sprintf("Location: http://%s/", $_SERVER['HTTP_HOST']));

}

Muchas gracias lo resolvi hoy en la mañana con otro codigo similar php tambien pero te agredesco mucho tu ayuda de todas formas.
 
Atrás
Arriba