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

  • Applies to:
  • Plesk 11.x for Linux

症状

PHP ページの一部のリンクが、理由もなくポート 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

その結果、URL の最後にトレイリングスラッシュがないと、ポート 7080 または 7081 にリダイレクトされます。例えば
<?php
header('Location: http://existing.dom/incorrect');
?>

上記は、ブラウザで http://existing.dom:7080/incorrect にリダイレクトされます。

解決策

この問題は将来のアップデートで修正され、新しい KB 記事が作成されます。 KB 記事の作成について通知を受け取りたい場合は、Parallels Plesk Panel 製品に関する新しい記事を購読することができます。

回避策 1

PHP コードで、URL の最後に必ずトレイリングスラッシュを付けるようにしてください。 例えば、上記の例は次のように記述します。
<?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 <domain_name>

 

0a53c5a9ca65a74d37ef5c5eaeb55d7f 56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838

Email subscription for changes to this article