Apache 404使用表单提交找不到页面

Apache 404使用表单提交找不到页面,apache,.htaccess,mod-rewrite,http-status-code-404,Apache,.htaccess,Mod Rewrite,Http Status Code 404,在localhost中,一切正常 但是我有一个主机,在/public_html/site文件夹中我有一个主WordPress站点。我还有一个PHP站点,在/public\u html/site/BETA中没有htaccess 您可以在此处登录: 用户:堆栈 密码:溢出 现在的问题是,当我尝试在登录后使用表单提交到同一页面进行注销时,如图所示: 找不到404页 但是,如果我直接将url放在浏览器地址栏中,那么它的加载就不会有任何404错误 /public\u html中的.htaccess: Re

在localhost中,一切正常

但是我有一个主机,在/public_html/site文件夹中我有一个主WordPress站点。我还有一个PHP站点,在/public\u html/site/BETA中没有htaccess

您可以在此处登录: 用户:堆栈 密码:溢出 现在的问题是,当我尝试在登录后使用表单提交到同一页面进行注销时,如图所示:

找不到404页

但是,如果我直接将url放在浏览器地址栏中,那么它的加载就不会有任何404错误

/public\u html中的.htaccess:

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\u html/site中的.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
#开始WordPress
重新启动发动机
重写基地/站点/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/site/index.php[L]
#结束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
}
?>

window.location=“./login.php?from=dashboard&location=“;
window.location.assign(“./login.php?from=dashboard&location=assign”);
我面临的问题是,代码在登录后没有在服务器中执行JavaScript重定向。实际上,在我提交注销请求后,它没有得到dashboard.php,尽管它似乎已成功注销。我还在dashboard.php中处理注销操作。似乎/public_html/site/index.php只是在注销提交后才处理它

注意:我的本地主机只有/public\u html/site/BETA下的部分站点。因此本地主机没有任何htaccess或wordpress

在localhost中,一切正常

只是因为它在本地主机上工作,所以它不需要在任何地方工作。这就是为什么服务器配置的开发版本与您稍后部署到的服务器配置接近(如果不相同的话)是非常重要的

然后尝试在本地主机上复制404

在对问题进行故障排除时,首先要做的是在两端获得相同的行为。根据您在问题中提供的当前信息,这是我能给出的最佳建议


简单的回答是:两个系统之间的配置不同。请注意,您能够在两个系统上使用相同的配置,其中不仅包括配置指令,还包括所涉及的所有软件的相同版本,例如相同版本的Web服务器、相同的操作系统和相同版本的PHP(尽管这里似乎不是PHP的问题).

我将站点移动到子域。之后我看到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;
?>


如果必须有人需要重定向,那么可以尝试使用construct
exit就在标题声明之后。否则使用JavaScript。

显然是
http://myrootsite.com/BETA/dashboard.php
不存在,因此使用404。你的问题是什么?请记住,你不能继承上树,只能继承下树。因此,当你在这里提问时,你显然没有理解这个网站的内容和范围,看看了解什么样的问题可以在这里提问,以及如何制定一个好的、具体的、以编程为中心的问题(通常被接受)。这个问题似乎离题了,因为它是关于配置第三方软件(此处为Apache HTTPD)的支持请求。@BLaZuRE:请将措辞上的细微但明显的差异与您引用的类似结束原因联系起来“有关通用计算硬件和软件的问题对于堆栈溢出来说是无关紧要的,除非它们直接涉及主要用于编程的工具。您可能可以获得有关超级用户的帮助。”(由我突出显示)。这里引用的工具-.htaccess-主要用于Web服务器配置,而不是编程。这里可能需要特别挑剔,因为OP错过了一个机会来概括他的示例应该工作的确切原因。@hakre我同意你的看法,但请注意Apache配置问题是@hakre我不想在这里或下面漫谈聊天,所以我停止了评论,因为它与回答这个问题无关。根据你的评论,安卓手机主要用于电话&作为移动计算机,但它也与移动开发者的编程有关。为了获得移动应用程序,你还需要配置安卓设备的某些方法ion开始工作。您可以尝试登录并注销吗?然后您可以看到问题。我已经说过登录信息。@Sazzad Hossain Khan:请让我访问您无法重现问题的本地主机计算机。我完全相信您能够按照您概述的那样在公共系统上触发错误。我不知道需要在那里重试,因为它不同于您的本地主机,因此在本地主机上复制是解决此问题的关键。请注意:我只接受访问公共计算机。如果此本地主机是私人配置,则需要根据合同进行配置,以保护您的隐私,并允许我将其保持在专业级别。我已添加我在编辑中编辑了一些代码。请检查。你能通过TeamViewer连接到我的私人电脑吗?如果是,那么我应该将访问权限发送到哪里?@SazzadHossainKhan:你可以提前支付四个小时的支持,并且不退款(约268欧元)。如果不是,请不要亲自问我。如果是,我很乐意帮助你,如果你提供我进一步联系的电子邮件地址。抱歉@hakre:这超出了整个项目预算。因此我无法。但是,感谢