У меня есть имя vhost example.conf
который содержит строки ниже.
<VirtualHost *:80>
ServerName example.com
ServerAdmin admin@myhost.com
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog /var/log/httpd/app1_access.log combined
ErrorLog /var/log/httpd/app1_error.log
redirect / http://example.com/jenkins
DirectoryIndex index.html index.php
JkMount /jenkins/* failover
JkMount /jenkins failover
</VirtualHost>
Я хочу, если кто попадет http://example.com
тогда он должен открыться http://example.com/jenkins
Мой URL перенаправляется на
http://example.com/jenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkinsjenkins
Как это.
Это Jenkins на tomcat с веб-сервером apache. Любая помощь приветствуется.
redirect / http://example.com/jenkins
Если перенаправление на тот же хост, то это действительно приведет к циклу перенаправления, потому что Redirect
Директива использует простое сопоставление префиксов, и все, что находится после совпадения, копируется в конец целевого URL. Итак, вы получите следующее:
/
(Первоначальный запрос)/jenkins
(первое перенаправление)/jenkinsjenkins
(второе перенаправление)Вам нужно использовать RedirectMatch
вместо этого, чтобы вы могли сопоставить только корень документа. RedirectMatch
(также является частью mod_alias) сопоставления с использованием регулярного выражения вместо сопоставления префиксов. Например:
RedirectMatch 302 ^/$ http://example.com/jenkins
Я включил по желанию Аргумент кода состояния, чтобы прояснить, что это 302 (временное) перенаправление (по умолчанию).
Вам нужно будет перезапустить Apache после внесения любых изменений в конфигурацию сервера. И, как всегда, перед тестированием убедитесь, что вы очистили кеш браузера.