2010-09-03 13 views
7

Necesito ayuda con la reescritura de URL en .htaccess.Reescritura de URL para diferentes protocolos en .htaccess

Así que el problema es sobre diferentes protocolos: https y http. El objetivo principal de la reescritura es eliminar "www" de la URL, pero el protocolo debe seguir siendo el mismo que antes.

Por ejemplo, cuando tengo URL como http : //www.domain.com/request, debe ser redirigido a la http: //domain.com/request. Resuelvo con las siguientes reglas:

RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

Pero en el caso, cuando la URL se parece a https: //www.domain.com/request debe ser redirigido a https: //domain.com/ solicitud.

Desafortunadamente, la regla anterior redirigirá a http independientemente del protocolo actual.

Gracias de antemano.

+0

posible duplicado de [.htaccess para redireccionar sin www http y https] (http://stackoverflow.com/questions/2015159/htaccess-redirect-for-non -www-both-http-and-https) –

+0

Gracias por el enlace. Me perdí esta pregunta durante la búsqueda. Desafortunadamente, ese resultado no funciona. Redirige https: // domain.com/request a http: // www.domain.com/request, en lugar de https: // www.domain.com/request. – Alex

Respuesta

8

Esto es bastante similar al posible duplicado enlazado, pero dado que este fuerza www donde desea eliminarlo, podría garantizar una respuesta por separado.

intentar algo como esto:

RewriteCond %{HTTP_HOST} ^www\. 
RewriteCond %{HTTPS}s ^on(s)|off 
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$ 
RewriteRule^%1%3%{REQUEST_URI} [R=301,L] 
+2

Una explicación de las reglas anteriores definitivamente será muy útil como referencia para las personas que buscan www para la redirección no www. –

+0

en serio, creadores de API de Apache ... ¿por qué no solo tener una variable como 'HTTP_PROTOCOL', y hacer que el segundo argumento siga el mismo patrón como todos los demás? 'RewriteCond% {HTTP_PROTOCOL}^http $' o 'RewriteCond% {HTTP_PROTOCOL}^https $' en lugar de hacer una excepción a la regla? Menos requisitos de conocimiento es mejor. El conocimiento adicional es bueno, pero el conocimiento extra requerido es malo. Y debes saber la sintaxis exacta y el valor. Quién va a adivinar '^ on (s) | off'. Freaken antiguas herramientas relacionadas con PHP ... – ahnbizcad

Cuestiones relacionadas