【发布时间】:2013-07-28 06:07:18
【问题描述】:
在 localhost 中一切正常。
但我有一个主机,在 /public_html/site 文件夹中我有主 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错误。
/public_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_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
这是我在 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 仅在注销提交后才处理它。
注意:我的本地主机只有 /public_html/site/BETA 下的部分站点。所以本地主机没有任何htaccess或wordpress。
【问题讨论】:
-
显然
http://myrootsite.com/BETA/dashboard.php所代表的文件不存在,因此404。你的问题是什么?请记住,您不能沿树向上继承,只能向下继承。因此,正如您在这里提出的问题,您显然缺少了解inheritrewrite option 以及本网站的范围,请参阅stackoverflow.com/help 以了解可以在这里提出哪些问题以及如何制定一个好的、具体的、以编程为中心的问题(通常被接受)。 -
这个问题似乎是题外话,因为它是关于配置第三方软件的支持请求,这里是 Apache HTTPD。
-
@BLaZuRE:请把措辞上的细微但明显的区别与你引用的类似的密切原因 “有关通用计算硬件和软件的问题与 Stack Overflow 无关,除非它们直接涉及主要用于编程的工具。您也许可以在超级用户方面获得帮助。”(由我强调)。此处引用的工具 - .htaccess - 主要用于网络服务器配置,而不是编程。在这里非常挑剔可能是值得的,因为 OP 错过了准确概述他的示例应该工作的原因。
-
@hakre 我同意你的观点,但请注意 Apache 配置问题是officially on-topic on SO
-
@hakre 我不想在这里闲逛或聊天,所以我停止评论,因为它与回答这个问题无关。根据您的评论,Android 手机主要用于电话和移动计算机,但它也与移动开发人员的编程有关。您还需要通过某些方式配置 Android 设备才能使移动应用程序正常工作。
标签: apache .htaccess mod-rewrite http-status-code-404