2011-07-22 19 views
10

Tengo un sitio web interactivo que tiene autores. Cuando un autor entra en el sitio en www.mysite.com y registra en la varible sesión se convierte ensesión diferente con url's con-www y sin-www

$_SESSION[loggedid]=true; 

y temáticos sitio de cambios.

Pero cuando ingresa en mysite.com (sin www) incluso él está conectado, ve el tema predeterminado, no puede escribir, etc. Creo que son sesiones diferentes, ¿verdad? ¿Depende de mi servidor o navegador o qué? ¿Cómo puedo hacer esto 2, las mismas sesiones o redireccionar el usuario de uno a uno?

Respuesta

13

Agregue esto a su archivo .htaccess:

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST} ^mysite\.com 
RewriteRule ^(.*)$ http://www.mysite.com$1 [R=permanent,L] 
+0

Por qué la downvote ? Esta es una solución perfectamente legítima y ampliamente utilizada. OP dijo "... ¿o redirigir al usuario de uno a uno?" – AlienWebguy

+3

Votación a favor sin comentarios? ¡Aplicar un dominio específico resuelve el problema y realmente ayuda a seo! –

+0

Estas líneas no solo resuelven el problema, sino que redirigen a mysite.com a www.misitio.com en todos los casos. – erdomester

1

Utilice esta: http://ca3.php.net/session_set_cookie_params Para configurar el dominio para que coincida con todos los subdominios hacen esto:

session_set_cookie_params($lifetime, '/', '.domain.com'); 

Usted necesita usar que antes de un llamado session_start().

Usted podría utilizar este ejemplo de código tomado directamente desde el enlace de arriba, que te permite guardar todos los ajustes actuales excepto el dominio:

$currentCookieParams = session_get_cookie_params(); 

$rootDomain = '.example.com'; 

session_set_cookie_params( 
    $currentCookieParams["lifetime"], 
    $currentCookieParams["path"], 
    $rootDomain, 
    $currentCookieParams["secure"], 
    $currentCookieParams["httponly"] 
); 

session_name('mysessionname'); 
session_start(); 
0
session.cookie_domain = 

directiva de php.ini

tratar de usar

session_set_cookie_params(0, '/', '.yourdomain.com'); 

que punto inicial significa sesión afectará a todos los dominios. ¡Sé consciente de SUHOSHIN! ¡A veces restringe esta función!

5

Es RewriteRule

^(.*)$ http://www.mysite.com/$1 [R=permanent,L]

y no

$1 [R=permanent,L].

Si añade .com$1 [R=permanent,L] en php.ini e intenta mysite.com/index.php?id=934 se le redirige a mysite.comindex.php /? Id934

Cuestiones relacionadas