Назад | Перейти на главную страницу

Конфигурация Apache - Почему возникает цикл перенаправления?

У меня есть сервер Apache и сервер JBoos с моим приложением на моем локальном компьютере.

Это моя конфигурация Apache:

Когда я доберусь до http: //dev.example в браузере все в порядке, и я попадаю на домашний сайт своего приложения. Но когда я доберусь до http: //blog.dev.example Я получаю сообщение об ошибке и информацию о цикле перенаправления.

Думаю, что ошибся в настройке. Вы видите, что может быть не так?

РЕДАКТИРОВАТЬ:

$ curl -v http://blog.dev.example >/dev/null
* Rebuilt URL to: http://blog.dev.example/
* timeout on name lookup is not supported
*   Trying 127.0.0.1...
* Connected to blog.dev.example (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: blog.dev.example
> User-Agent: curl/7.46.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Mon, 11 Jul 2016 10:20:41 GMT
< Server: Apache-Coyote/1.1
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1
< X-Powered-By: JSP/2.2
< Location: http://blog.dev.example/
< Content-Type: text/html;charset=ISO-8859-1
< Content-Length: 216
< Set-Cookie: JSESSIONID=gi821fxux6X2f2Si9kxsPtkK.undefined; Path=/
< Vary: Accept-Encoding
<
* Connection #0 to host blog.dev.example left intact`


$ curl -v http://blog.dev.example/ >/dev/null
* timeout on name lookup is not supported
*   Trying 127.0.0.1...
* Connected to blog.dev.example (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: blog.dev.example
> User-Agent: curl/7.46.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Mon, 11 Jul 2016 10:32:02 GMT
< Server: Apache-Coyote/1.1
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1
< X-Powered-By: JSP/2.2
< Location: http://blog.dev.example/
< Content-Type: text/html;charset=ISO-8859-1
< Content-Length: 216
< Set-Cookie: JSESSIONID=9P-1TFJMCMJe0eJUP6cOa3FU.undefined; Path=/
< Vary: Accept-Encoding
<
* Connection #0 to host blog.dev.example left intact
ProxyPass / http://localhost:10080/
...
RewriteCond %{HTTP_HOST} ^blog.*$ [NC]
RewriteRule ^/([^/]+)$ /index/-/c/$1 [P,L]

Я думаю, причина, по которой он не перенаправляется на /index/-c/$1 заключается в том, что ProxyPass просто перенаправляет перед попаданием в RewriteRule. Он всегда выполняет перенаправление независимо от пути, поэтому никогда не переходит к RewriteRule.

Чтобы исправить это, вы должны переместить его после RewriteRule.