2013-07-28 44 views
0

在localhost中一切正常。404使用表單提交未找到頁面

但我有一個託管在/ public_html /站點文件夾我有WordPress主站點。我有另一個PHP網站,它在/ public_html/site/BETA中沒有htaccess。

您可以在此登陸:http://yoursocialtool.com/BETA/login.php 用戶:堆棧 密碼:溢出 現在的問題是,當我嘗試使用表單提交到同一頁面等作爲http://yoursocialtool.com/BETA/dashboard.php它說,在登錄後註銷:

404找不到頁面!

但是,如果我直接把url中的瀏覽器地址欄http://yoursocialtool.com/BETA/dashboard.php然後加載罰款沒有任何404錯誤。

中的.htaccess中/的public_html:

RewriteOptions inherit 

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^yoursocialtool.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.yoursocialtool.com$ 
RewriteCond %{REQUEST_URI} !site/ 
RewriteRule (.*) /site/$1 [L] 

中/的public_html /網站的.htaccess:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /site/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /site/index.php [L] 
</IfModule> 

# END WordPress 

這裏是我用我的dashboard.php該代碼:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors','On'); 
ini_set('error_log','error.log'); 
require("config.inc.php"); 
require("__require_login.php"); 
require_once("_isconnected.php"); 
if (isAppLoggedIn()){ 
    require("_dashboard.html.php"); 
} else { 
    echo ($msg); 
    ?> 
    <script> 
window.location = "./login.php?from=dashboard&location="; 
window.location.assign("./login.php?from=dashboard&location=assign"); 
    </script> 
    <?php 
} 
?> 

而我所面臨的問題是代碼沒有在日誌之後在服務器中執行JavaScript重定向在。實際上,在我提交註銷請求後,雖然它似乎已成功註銷,但它沒有獲取dashboard.php。我正在處理dashboard.php中的註銷操作。似乎是/public_html/site/index.php僅在註銷提交後處理它。

N.B:我的本地主機只有/ public_html/site/BETA下的部分網站。所以本地主機沒有任何htaccess或wordpress。

+0

很明顯,由'http:// myrootsite.com/BETA/dashboard.php'表示的文件不存在,因此404不存在,那麼您的問題是什麼?請記住,你不能繼承樹,只是向下。正如你在這裏問的那樣,你明顯錯過了解['inherit' rewrite選項](http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions)以及這個範圍網站,請參閱http://stackoverflow.com/help,以瞭解可以在此處詢問哪類問題,以及如何制定一個良好的,具體的,以編程爲中心的問題(通常可以接受)。 – hakre

+5

這個問題似乎是無關緊要的,因爲它是關於配置第三方軟件的支持請求,這裏是Apache HTTPD。 – hakre

+0

我詢問了特定的編程問題/編碼技術。所以它不是一個離題。 – itsazzad

回答

0

我將網站移至子域名。之後,我看到404有500個錯誤。 我已經找到了與Apache系統管理員協商的解決方案。他們給我看了,有在日誌中的錯誤象下面這樣:

malformed header from script. Bad header= 

後來我發現,服務器不支持在服務器端的PHP腳本重定向。然後我禁用服務器中的重定向,現在它的工作正常。我使用JavaScript重定向。

<?php 
//header('Location: http://www.example.com/');//Use JavaScript to redirect instead. Comment it out 
exit; 
?> 

如果有人必須需要重定向,那麼可以嘗試在頭聲明後面使用構造exit;。否則使用JavaScript。

0

在localhost中一切正常。

只因爲它在本地主機上工作,它不一定需要到處工作。這就是爲什麼您的服務器配置的開發版本與稍後部署它的服務器配置接近(如果不完全相同)這一點固有地重要。

對於那個使用virtualization,然後嘗試在您的本地主機上重現404。

在兩端獲取相同的行爲是對問題進行故障排除的第一個正常檢查。根據您在問題中提供的最新信息,這是我可以提供的最佳建議。

簡短的回答是:兩個系統之間的配置不同。請注意,您可以在兩個系統上使用相同的配置,不僅包括配置指令,還包括所涉及的所有軟件的相同版本,例如相同版本的Web服務器,相同操作系統和相同版本的PHP(儘管PHP似乎不是這裏的問題)。

+0

你可以請嘗試登錄和註銷?然後你可以看到問題。我已經說過關於登錄信息。 – itsazzad

+0

@Sazzad Hossain Khan:請讓我訪問您的本地計算機,您無法重現該問題。我完全相信你能夠像你所描述的那樣觸發公共系統中的錯誤。我不需要在那裏重試它,因爲它與localhost不同,所以在localhost上重現是解決這個問題的關鍵。請注意:我只接受公用電腦。如果這個本地主機是一個私人配置,這需要它根據合同保持隱私,並允許我保持專業級別。 – hakre

+0

我在編輯中添加了一些代碼。請檢查一下。你能通過TeamViewer連接到我的私人電腦嗎?如果是,那麼我應該在哪裏向您發送訪問權限? – itsazzad