2010-09-03 4 views
7

J'ai besoin d'aide pour la réécriture d'URL dans .htaccess. Donc le problème concerne différents protocoles: https et http. Le but principal de la réécriture est de supprimer "www" de l'URL, mais le protocole devrait rester le même que précédemment.Réécriture d'URL pour différents protocoles dans .htaccess

Par exemple, quand j'ai URL comme http : //www.domain.com/request, il devrait être redirigé vers la http: //domain.com/request. Je résous avec ces règles:

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

Mais dans le cas, lorsque l'URL ressemble https: //www.domain.com/request il devrait être redirigé vers https: //domain.com/ demande.

Malheureusement, la règle ci-dessus redirigera vers http, quel que soit le protocole en cours.

Merci d'avance.

+0

double possible de [htaccess redirection pour non-www HTTP et HTTPS] (http://stackoverflow.com/questions/2015159/htaccess-redirect-for-non -www-both-http-and-https) –

+0

Merci pour le lien. J'ai raté cette question pendant la recherche. Malheureusement, cette exapmle ne fonctionne pas. Il redirige https: // domain.com/request vers http: // www.domain.com/request, au lieu de https: // www.domain.com/request. – Alex

Répondre

8

Ceci est assez similaire au doublon possible lié, mais puisque celui-ci force www où vous voulez l'enlever, il pourrait justifier une réponse séparée.

Essayez quelque chose comme ceci:

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

Une explication de ces règles ci-dessus sera certainement très utile en tant que référence pour les personnes recherchant www à non redirection www. –

+0

sérieusement, apache API créateurs ... pourquoi ne pas avoir une variable comme 'HTTP_PROTOCOL', et ont le second argument suivent le même modèle comme tous les autres? 'RewriteCond% {HTTP_PROTOCOL}^http $' ou 'RewriteCond% {HTTP_PROTOCOL}^https $' au lieu de faire une exception à la règle? Moins de connaissances requises sont meilleures. Les connaissances supplémentaires sont bonnes, mais les connaissances supplémentaires requises sont mauvaises. Et vous devez connaître la syntaxe exacte et la valeur. Qui va deviner '^ on (s) | off'. Freaken vieux outils liés à PHP ... – ahnbizcad