Article ID: 114425, created on Aug 20, 2012, last review on Aug 12, 2014

  • Applies to:
  • Plesk 11.x for Linux

Симптомы

Некоторые ссылки на РНР-страницах по непонятной причине перенаправляются на порт 7080 или 7081. Например, если нажать на ссылку

http://site.com/sub
,

произойдет переадресация на следующую страницу:
 
http://site.com:7080/sub.

Причина

Если на сервере включен Nginx, серверные переменные PHP приобретают следующий вид:
_SERVER["HTTP_HOST"] existing.dom
_SERVER["SERVER_NAME"] existing.dom
_SERVER["SERVER_ADDR"] 127.0.0.1
_SERVER["SERVER_PORT"] 7080
or
_SERVER["SERVER_PORT"] 7081

В результате, если в конце ссылки отсутствует косая черта, эта ссылка переадресуется на порт 7080 или 7081. Например, вот такой код:
<?php
header('Location: http://existing.dom/incorrect');
?>

переадресует браузер на http://existing.dom:7080/incorrect.

Решение

Эта проблема будет устранена в одном из следующих обновлений, для которого будет создана новая статья в базе знаний. Если вы хотите получать уведомления о новых статьях, посвященных продуктам Parallels Plesk Panel, вы можете подписаться на соответствующую рассылку.

Временное решение 1

Всегда добавляйте косую черту в конце URL-адресов в вашем PHP-коде. Например, приведенный выше фрагмент код должен выглядет так:
<?php
header('Location: http://existing.dom/correct/');
?>

Временное решение 2

Если первое решение потребует слишком много правок в PHP-коде, попробуйте следующее:
 
1.      Создайте папку:
'/usr/local/psa/admin/conf/templates/custom/domain/'
и
скопируйте в нее файл /usr/local/psa/admin/conf/templates/default/domain/domainVirtualHost.php.
 
2.      Внесите в файл /usr/local/psa/admin/conf/templates/custom/domain/domainVirtualHost.php следующие изменения:

Сократите строку 6 до
ServerName "<?php echo $VAR->domain->asciiName ?>"

Итоговая разница должна быть следующей:
# diff /usr/local/psa/admin/conf/templates/default/domain/domainVirtualHost.php /usr/local/psa/admin/conf/templates/custom/domain/domainVirtualHost.php
6c6
< ServerName "<?php echo $VAR->domain->asciiName ?>:<?php echo $OPT['ssl'] ? $VAR->server->webserver->httpsPort : $VAR->server->webserver->httpPort ?>"
---
> ServerName "<?php echo $VAR->domain->asciiName ?>"

После этого выполните переконфигурацию Apache для соответствующего домена:
# /usr/local/psa/admin/bin/httpdmng --reconfigure-domain <имя домена>

 

0a53c5a9ca65a74d37ef5c5eaeb55d7f 56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838

Email subscription for changes to this article
Save as PDF