2010-03-21 3 views

Répondre

5

Si vous utilisez Apache, simple do (sur htaccess) :

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^yourdomain.com 
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301] 

De cette façon, vous vous assurez que tout ce qui n'utilise www commence à utiliser

MISE À JOUR Comme vous l'avez mentionné, vous n'avez pas d'apache, je me suis souvenu que j'avais utilisé this il y a environ un an. Il fait à peu près la même chose que mod_rewrite, et est entièrement pris en charge par Tomcat. Je l'ai utilisé avec de la résine, mais je sais que ça fonctionne de la même manière.

La chose la plus intéressante à ce sujet, c'est qu'il fonctionne également sur "mod_rewrite style", comme vous pouvez le voir here. La seule raison pour laquelle je n'ai pas continué à l'utiliser, c'est parce qu'il finira par le faire au niveau du serveur, par opposition à un serveur web. Ce qui signifie qu'il appellera la JVM pour interpréter la redirection.

Cela fonctionne de la même manière, et comme mentionné précédemment, peut poursuivre exactement la même chose que vous utiliseriez sur Apache.

+0

Salut, Merci pour votre réponse. Je sais comment cela se fait avec Apache. Malheureusement, je n'ai pas Apache, seulement Tomcat. – bashan

+0

@bashan J'ai mis à jour ma réponse avec quelques informations supplémentaires –

+1

Merci.Modification mineure de la RewriteRule pour éviter un double/sur l'URL redirigée: 'RewriteRule^/? (. *) Https://www.yourdomain.com/$1 [R = 301, L]' –

6

Le tuckey url rewrite filter peut être utilisé comme celui-ci pour faire la redirection appropriée:

<rule> 
    <name>Canonical Hostnames</name> 
    <condition name="host" operator="notequal">^www.mydomain.com</condition> 
    <condition name="host" operator="notequal">^$</condition> 
    <from>^/(.*)</from> 
    <to type="redirect" last="true">http://www.mydomain.com/$1</to> 
</rule> 
1

wwwizer.com offre domaine nu libre redirect http://wwwizer.com/naked-domain-redirect

point votre domaine nu comme mysite.com à leur propriété intellectuelle, et ils vont faire une redirection 301 vers www.mysite.com

L'utilisation d'une redirection 301 est la méthode recommandée pour l'optimisation SEO.

0

En utilisant Tuckey UrlRewriteFilter, vous pouvez également utiliser la règle suivante:

<rule> 
    <condition type="header" name="host" operator="equal">^[^.]+[.][^.]+$</condition> 
    <from>^/.*</from> 
    <to qsappend="true" type="redirect" last="true">${replaceFirst:%{request-url}://://www.}</to> 
</rule> 

Celui-ci est tout à fait intéressant, puisque rien n'est codé en dur: cela fonctionne pour tout domaine et conserve le numéro de port et le protocole.

Les fonctions semblent être implémentées depuis la v3.1.


Il y a un problème connu avec l'attribut qsappend: https://code.google.com/p/urlrewritefilter/issues/detail?id=116. Vous devez implémenter le correctif spécifié sur le lien.

Il suffit de créer le package org.tuckey.web.filters.urlrewrite dans votre webapp, créez la classe NormalRule et copiez/collez le contenu de la classe suivante: http://urlrewritefilter.googlecode.com/svn/trunk/src/main/java/org/tuckey/web/filters/urlrewrite/NormalRule.java.

Questions connexes