вам просто нужно раскомментировать часть кода в conf / web.xml (Tomcat server web.xml), которая фильтрует весь запрос и конвертирует в UTF-8.
<!-- A filter that sets character encoding that is used to decode -->
<!-- parameters in a POST request -->
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<!-- The mapping for the Set Character Encoding Filter -->
<filter-mapping>
<filter-name>setCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
, вот и все. работать отлично в tomcat
Я никогда не тестировал его, таким образом, это не могло бы работать, но я попытаюсь добавить include
директива во всех виртуальных блоках хоста в единственный файл. Необходимо было бы изменить каждый виртуальный блок конфигурации хоста однажды, но после этого, у Вас должно быть центральное место, от которого можно внести изменения. YMMV.
Похоже, самое простое возможное решение - добавить
RewriteOptions inherit
в каждую директиву VirtualHost. Это по крайней мере намного проще, чем возиться с файлами .htaccess. Apache довольно ясно понимает тот факт, что
по умолчанию конфигурации перезаписи не передается по наследству. Это означает, что вы необходимо включить RewriteEngine директива для каждого виртуального хоста в который вы хотите использовать. ( http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html )
и, по-видимому, способ изменить значение по умолчанию - через RewriteOptions в дочернем (виртуальном хосте или директоре), поэтому вы должны сделать что-то в каждом ребенке.
Если вы пытаетесь переписать что-то только в доменной части имени, например, исправить распространенную ошибку в написании, вам даже не нужна опция 'inherit'. Я настроил виртуальный хост без имени, чтобы отлавливать все недействительные имена хостов и правильно их переписывать перед перенаправлением.
Поскольку здесь используются перенаправления, соответствующий виртуальный хост будет найден после применения переписывания.
Options +Indexes +FollowSymLinks
RewriteEngine on
# If it begins with only domain.com, prepend www and send to www.domain.com
RewriteCond %{HTTP_HOST} ^domain [NC]
RewriteRule ^(.*) http://www.domain.com$1 [L,R=301]
# Correct misspelling in the domain name, applies to any VirtualHost in the domain
# Requires a subdomain, i.e. (serviceXXX.)domain.com, or the prepended www. from above
RewriteCond %{HTTP_HOST} ^([^.]+\.)dommmmmain\.com\.?(:[0-9]*)?$ [NC]
RewriteRule ^(.*) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+\.)?domain.com(.*) http://$1domain.com$2 [L,R=301]
# No-name virtual host to catch all invalid hostnames and mod_rewrite and redirect them
<VirtualHost *>
RewriteEngine on
RewriteOptions inherit
</VirtualHost>