Ответ 1
Это настроено в вашем Царстве. См. Атрибут transportGuaranteeRedirectStatus
для вашей конкретной реализации Realm.
https://tomcat.apache.org/tomcat-8.5-doc/config/realm.html
Ex: server.xml имеет этот готовый
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
Он не устанавливает transportGuaranteeRedirectStatus
, поэтому по умолчанию он равен 302. Если вы хотите, чтобы он использовал 301, просто добавьте атрибут transportGuaranteeRedirectStatus="301"
в Realm (верхний уровень) (у вас могут не быть вложенные Realms в зависимости от вашей конфигурации) и перезапустите Tomcat.
Пример:
<Realm className="org.apache.catalina.realm.LockOutRealm" transportGuaranteeRedirectStatus="301">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
</Realm>
Если у вас нет тега Realm, определенного в вашей конфигурации, Tomcat по умолчанию использует NullRealm. Если вы хотите переопределить перенаправление в этой ситуации, вам просто нужно определить NullRealm под свойством transportGuaranteeRedirectStatus
, установленным на нем.
Надеюсь, что это поможет!