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

  • Applies to:
  • Plesk 11.x for Linux

Symptômes

Certains liens dans les pages PHP redirigent vers le port 7080 ou 7081 sans aucune raison. Par exemple, lorsque je clique sur le lien

http://site.com/sub


il me renvoie ici :
 
http://site.com:7080/sub

Cause

Si NGINX est activé sur le serveur, les variables du serveur PHP commencent à ressembler à ceci :
_SERVER["HTTP_HOST"] existing.dom
_SERVER["SERVER_NAME"] existing.dom
_SERVER["SERVER_ADDR"] 127.0.0.1
_SERVER["SERVER_PORT"] 7080
ou
_SERVER["SERVER_PORT"] 7081

Résultat : aucun slash à la fin de l'URL d'où la redirection vers le port 7080 ou 7081. Par ex., ce code
<?php
header('Location: http://existing.dom/incorrect');
?>

redirigera le navigateur vers http://existing.dom:7080/incorrect.

Résolution

Le problème sera résolu dans une mise à jour prochaine. Un nouvel article sera alors créé à ce sujet dans cette Base de connaissances. Vous pouvez vous abonner aux nouveaux articles sur les produits de Parallels Plesk Panel si vous souhaitez recevoir des notifications lorsqu'ils sont créés.

Solution 1

Dans votre code PHP, placez toujours un slash à la fin de l'URL. Par exemple, l'exemple ci-dessous doit ressembler à ceci :
<?php
header('Location: http://existing.dom/correct/');
?>

Solution 2

S'il y a beaucoup de code PHP à corriger, vous devez utliser la solution alternative suivante :
 
1.      Créez un répertoire :
'/usr/local/psa/admin/conf/templates/custom/domain/'
et
copiez le fichier /usr/local/psa/admin/conf/templates/default/domain/domainVirtualHost.php dans le répertoire nouvellement créé
 
2.      Editez le template personnalisé résultant, /usr/local/psa/admin/conf/templates/custom/domain/domainVirtualHost.php:

Truncate line 6 to
ServerName "<?php echo $VAR->domain->asciiName ?>"

Résultat - la différence doit être la suivante :
# 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 ?>"

Ensuite, vous devez reconfigurer la configuration Apache pour le domaine :
# /usr/local/psa/admin/bin/httpdmng --reconfigure-domain <domain_name>

 

0a53c5a9ca65a74d37ef5c5eaeb55d7f 56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838

Email subscription for changes to this article
Save as PDF