2016-06-19 34 views
0

我一直在努力使這項工作,我有一個數字海洋上的液滴,與CENTOS 7和最新的Cpanel版本安裝,我在我的Centos上安裝了一個名爲nDeploy的軟件,安裝nginx並添加cpanel支持以作爲反向工作代理與Apache,即時通訊仍然試圖瞭解所有這nginx的東西,所以,這個nDeploy插件,自帶的一些自動配置文件,真的很適合wordpress和其他東西......迄今爲止,它已經非常穩定和良好...Nginx的「錯誤太多REDIRECTS」Index.php問題?

因此,我有在這臺服務器上的2個域名(共享相同的IP地址,但在不同的帳戶在whm,這兩個網站工作得非常好,用wordpress安裝,但我想wordpress在1個網站,然後在另一個網站我想要一個PHP腳本至少作爲一個外聯網系統預訂...

所以,讓我們定義: 網站1:WordPress站點*做工非常精細 網站2:PHP站點*不工作錯誤:重定向過多

問題:

對於所有我一直在試圖理解我認爲問題是,「網站2」有不同的index.php結構,但林不知道如何解決它?讓我告訴你這個index.php文件的代碼:

<?php ob_start(); 
include "inc/config.php"; 
    $page = $_GET["page"]; 
    if(!isset($page) || $page == ""){ 
     header("Location:".SITE."index.php"); 
     exit(); 
    } 
    $access = 1; 

include "inc/template.php"; 
ob_flush(); 
?> 

那麼這是/ inc /文件夾中的template.php代碼:

<?php 
if ($access != 1) { 
    exit("Direct Access not allowed"); 
} 
require_once("db.php"); 
if (isset($_GET["page"])) { 
    $page = $_GET["page"]; 
} 

//Content 
if (file_exists(PAGES . $page . ".php")) { 
    $content = PAGES . $page . ".php"; 
} else { 
    $content = HEAD . "default.php"; 
} 

//Sidebar 
if (file_exists(SIDEBAR . $page . ".php")) { 
    $sidebar = SIDEBAR . $page . ".php"; 
} else { 
    $sidebar = SIDEBAR . "default.php"; 
} 

//Widget 
function widget($name) 
{ 
    if (file_exists(WIDGETS . $name . ".php")) { 
     include WIDGETS . $name . ".php"; 
    } else { 
     echo "WIGET NOT FOUND"; 
    } 
} 

//Plugins 
function plugins($name) 
{ 
    if (file_exists(PLUGINS . $name . DS . "index.php")) { 
     include PLUGINS . $name . DS . "index.php"; 
    } else { 
     echo "PLUGIN NOT FOUND"; 
    } 
} 

//Querys  
if (file_exists(QUERYS . $page . ".php")) { 
    $querys = QUERYS . $page . ".php"; 
} else { 
    $querys = QUERYS . "default.php"; 
} 

//Currency  
if (file_exists(WIDGETS . "currencychange.php")) { 
    $currency = WIDGETS . "currencychange.php"; 
} 

//Header  
if (file_exists(HEAD . $page . ".php")) { 
    $head = HEAD . $page . ".php"; 
} else { 
    $head = HEAD . "default.php"; 
} 

//Footer 
if (file_exists(FOOTER . $page . ".php")) { 
    $footer = FOOTER . $page . ".php"; 
} else { 
    $footer = FOOTER . "default.php"; 
} 


//Layout Pages 

//Pages Data 
$pageslist = mysqli_query($conn, "SELECT page_link FROM page_settings "); 
$pagestotal = mysqli_num_rows($pageslist); 

if (isset($_GET["page"])) { 
    $page = $_GET["page"]; 

$type = "notfound"; 

for($i = 0; $i < $pagestotal; $i++) { 
    $row = mysqli_fetch_array($pageslist); 

$casename = str_replace('.php', '', $row[0]); 
    switch ($page) { 
     case $casename: 
      $type = $row[0]; 
      break; 
    } 
} 

if($type == 'notfound') { 
    header("Location: ".SITE.""); 
} else { 
    $theme = ABSPATH . "template" . DS . THEME_NAME . DS . $type; 
} 
    include $theme; 
} else { 
    echo "PAGE NOT FOUND"; 
    exit(); 
} 
?> 

這是config.php文件的代碼:

<?php 
//------------------------------- FRONT END CONFIGURATION -------------------------------// 
//------------------------------- ----------------------- -------------------------------// 


//Front End URL PATH 
function siteURL() 
{ 
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; 
    $domainName = $_SERVER['HTTP_HOST'].'/'; // /foldername is subdirectory 
    return $protocol.$domainName; 
} 


//Page Path Information 
define("DS", "/"); 
define('ROOTPATH', $_SERVER['DOCUMENT_ROOT']); 
define("THEME_NAME", "default"); 
define('ABSPATH', dirname(__FILE__) . DS); 
define('SITE', siteURL()); 
define('WIDGETS', ABSPATH . "widget" . DS); 
define('PLUGINS', ABSPATH . "plugins" . DS); 
define('SIDEBAR', ABSPATH . "template" . DS . THEME_NAME . DS . "pages" . DS . "sidebar" . DS); 
define('THEME', ABSPATH . "template" . DS . THEME_NAME . DS); 
define('PAGES', ABSPATH . "template" . DS . THEME_NAME . DS . "pages" . DS); 
define('QUERYS', ABSPATH . "querys" . DS); 
define('HEAD', ABSPATH . "template" . DS . THEME_NAME . DS . "head" . DS); 
define('FOOTER', ABSPATH . "template" . DS . THEME_NAME . DS . "footer" . DS); 
define('PATH', SITE . "inc" . DS . "template" . DS . THEME_NAME . DS); 
define('VERSION', "v1.7"); 


//Activate SSL 
define('SSLACTIVE', 1); //Tell the class to use SSL Set: 1/0 


//SMTP Configuration 
define('USESMTP', 0); //Tell the class to use SMTP or phpmail Set: 1/0 
define('AUTHSMTP', true); //Enable SMTP authentication: true/false 
define('SSLSMTP', "TLS"); //Need SSL or TLS 
define('PORTSMTP', 587); //Set the SMTP server port 465 or 587 
define('HOSTSMTP', "smtp.sendgrid.net"); //Set the SMTP server port 465 or 587 
define('USERNAMESMTP', "test"); //SMTP server username 
define('PASSWORDSMTP', "test"); //SMTP server password 


//Define your Key and Salt to Encrypt and Decrypt reservation email card 
define('ENCRYPTORKEY', 'YOUR-KEY'); //Add your own key 
define('ENCRYPTORSALT', 'YOUR-SALT'); //Add your own salt key 

//------------------------------- --------------------------- -------------------------------// 
//------------------------------- --------------------------- -------------------------------// 



//------------------------------- BACKEND ADMIN CONFIGURATION -------------------------------// 
//------------------------------- --------------------------- -------------------------------// 


//Admin Panel URL PATH 
function siteURLA() 
{ 
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; 
    $domainName = $_SERVER['HTTP_HOST'].'/'.'admin/'; // admin is subdirectory 
    return $protocol.$domainName; 
} 
define('SITE_URL', siteURLA()); 
define('WEBSITE_DOMAIN', SITE_URL); 


/// Default language: en, es, autodetect 
$DEFAULT_LANGUAGE = "autodetect"; 
$cookiepath = "/"; 
$multilangpath = SITE_URL . "multilang"; 
$multilangurl = "/admin/multilang"; 
$websitedirectory = "/"; 


//BACKEND ADMIN TITLE 
define('WEBSITE_NAME', "Bookingo"); 


//SESSION CONFIGURATION 
define('SESSION_NAME',"ac_session"); 
define('SESSION_SECURE', false); 
define('SESSION_HTTP_ONLY', true); 
define('SESSION_REGENERATE_ID', true); 
define('SESSION_USE_ONLY_COOKIES', 1); 


//LOGIN CONFIGURATION 
define('LOGIN_MAX_LOGIN_ATTEMPTS', 7); 
define('LOGIN_FINGERPRINT', true); 


//PASSWORD CONFIGURATION 
define('PASSWORD_ENCRYPTION', "bcrypt"); //available values: "sha512", "crypt" 
define('PASSWORD_BCRYPT_COST', "13"); 
define('PASSWORD_SHA512_ITERATIONS', 25000); 
define('PASSWORD_SALT', "********"); //22 characters to be appended on first 7 characters that will be generated using PASSWORD_ info above 


//REGISTRATION CONFIGURATION 
define('REGISTER_CONFIRM', SITE_URL . "confirm.php"); 
define('REGISTER_PASSWORD_RESET', SITE_URL . "passwordreset.php"); 


//ERROR MESSAGES 
define('ERROR_EMAIL_REQUIRED', "Email is required."); 
define('ERROR_EMAIL_WRONG_FORMAT', "Please enter valid email."); 
define('ERROR_EMAIL_NOT_EXIST', "This email doesn't exist in our database."); 
define('ERROR_EMAIL_TAKEN',"User with this email is already registred."); 
define('ERROR_USERNAME_REQUIRED', "Username is required."); 
define('ERROR_USERNAME_TAKEN', "Username already in use."); 
define('ERROR_USER_NOT_CONFIRMED', "Please confirm your email."); 
define('ERROR_PASSWORD_REQUIRED', "Password is required."); 
define('ERROR_WRONG_USERNAME_PASSWORD', "Wrong username/password combination."); 
define('ERROR_PASSWORDS_DONT_MATCH', "Passwords don't match."); 
define('ERROR_WRONG_SUM', "Wrong sum. Please check it again."); 
define('ERROR_BRUTE_FORCE', "You exceeded maximum attempts limit for today. Try again tomorrow."); 


//SUCCESS MESSAGES 
define('SUCCESS_REGISTRATION', "Registration successful. Please check your email."); 
define('SUCCESS_ADDUSER', "Registration successful."); 


//CUSTOM APP DATA 
define('APPNAME','extranet'); 
define('COMPANYNAME','extranet'); 
define('COPYRIGHT','2013 - 2015 &copy; Powered by extranet - '. VERSION); 
define('LICENCE_KEY','*******'); 
?> 

所以..你可以看到,在根目錄下的index.php帶你到其他幾個PHP文件,以示真正的index.php(或者至少這是我的理解),我認爲這是問題,因爲例如,如果我訪問後端管理網站,一切工作都很好...那是site2.com/ admin/

但site2.com/根主目錄不工作,給我的錯誤:「太多重定向」

在此先感謝您的幫助......請原諒我的英語,這不是我的母語。

如果您需要任何其他代碼...或記錄或任何東西,我可以提供它...

回答

1
$page = $_GET["page"];  
if(!isset($page) || $page == ""){ 
    header("Location:".SITE."index.php"); 
    exit(); 
} 

讓我形容它

  1. 如果沒有URL PARAM pageGET要求然後重定向到SITE . "index.php"
  2. 常量SITE等於功能siteURL()
  3. 功能siteURL()或者是打印https://example.comhttp://example.com

這3個點指向要麼http://example.com/index.phphttps://example.com/index.php它們中的哪一個是你想現在就訪問URL。

如果你再回頭看看第1點,你會得到答案爲什麼。

You are visiting a page that is redirecting you the a page you're visiting that is redirect you to a page that you visiting ..... so forth infinitely

因此,作爲page需要假設默認page要設置URL參數是index

if(!isset($page) || $page == ""){ 
    header("Location:".SITE."index.php?page=index"); 
    exit(); 
} 
+0

嗨,@ Chay22謝謝...我想我現在的理解......我想就像你說的,和我現在得到一個HTTP錯誤500 ...不知道如果仍然是我的代碼或nginx conf上的東西。 – GTCR

+0

因此,您最好發佈錯誤日誌並更新當前的嘗試。我假設它發生,因爲你的mysqli循環 – Chay22

+0

嗨...我從cpanel更改爲PHP5.6它被設置爲PHP7.0,所以我改變了,現在家庭工作...沒有錯誤...現在我有另一個問題...當我去我的網頁的其他地方...例如: site2.com/reservation.php,它說文件未找到... this reservation.php不在根目錄index.php是...但是這個代碼在正常的LAMP Cpanel配置中可以正常工作,這隻會發生在我這個新的nginx配置中......我應該分享什麼錯誤日誌?再次感謝@ Chay22 – GTCR