Автоматически добавлять поддомен "www" для моего веб-приложения - PullRequest
6 голосов
/ 22 марта 2010

Как настроить Tomcat на автоматическое перенаправление на «www»? Я хочу это, если пользователь входит в мой домен как:

mydomain.com

он будет перенаправлен на: www.mydomain.com

Ответы [ 4 ]

6 голосов
/ 26 марта 2010

Фильтр перезаписи URL-адреса может использоваться для правильного перенаправления:

<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>
5 голосов
/ 22 марта 2010

Если вы используете Apache, просто сделайте (в htaccess):

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

Таким образом, вы убедитесь, что все, что не использует www, начинает использовать

UPDATE Как вы упомянули, у вас нет apache, я вспомнил, что использовал это около года назад.Он работает почти так же, как mod_rewrite, и полностью поддерживается Tomcat.Хотя я использовал его со смолой, но я знаю, что он работает точно так же.

Самое замечательное в этом то, что он также работает в «стиле mod_rewrite», как вы можете видеть здесь .Единственная причина, по которой я не продолжил использовать его, заключается в том, что в конечном итоге это будет сделано на уровне сервера, а не на уровне веб-сервера.Это означает, что он вызовет JVM для интерпретации перенаправления.

Он работает так же, хотя и, как упоминалось ранее, может предъявлять иск точно так же, как и в Apache.

1 голос
/ 24 октября 2013

wwwizer.com предлагает бесплатную переадресацию незащищенного домена http://wwwizer.com/naked-domain-redirect

Укажите ваш голый домен, такой как mysite.com, на их IP-адрес, и они сделают редирект 301 на www.mysite.com

Использование перенаправления 301 является рекомендуемым способом оптимизации SEO.

0 голосов
/ 07 августа 2014

Используя Tuckey UrlRewriteFilter , вы также можете использовать следующее правило:

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

Это довольно интересно, поскольку ничто не жестко закодировано: оно работает для любого домена и сохраняет номер порта и протокол.

Функции, похоже, реализованы начиная с версии 3.1.


Известна проблема с атрибутом qsappend: https://code.google.com/p/urlrewritefilter/issues/detail?id=116. Необходимо выполнить исправление, указанное в ссылке.

Просто создайте пакет org.tuckey.web.filters.urlrewrite в своем веб-приложении, создайте в нем класс NormalRule и скопируйте / вставьте содержимое следующего класса: http://urlrewritefilter.googlecode.com/svn/trunk/src/main/java/org/tuckey/web/filters/urlrewrite/NormalRule.java.

...