我在使用 Index.php 加载主页时收到 404,但 index.php 可用于直接链接,为啥?

Posted

技术标签:

【中文标题】我在使用 Index.php 加载主页时收到 404,但 index.php 可用于直接链接,为啥?【英文标题】:i get a 404 while loading the homepage with Index.php, but index.php works on direct links, why?我在使用 Index.php 加载主页时收到 404,但 index.php 可用于直接链接,为什么? 【发布时间】:2015-10-17 23:20:48 【问题描述】:

我似乎无法理解为什么我的 Homepage 突然拒绝直接加载,即:www.mysite.com/ 但只有在您输入 www.mysite.com/index.php 时才会加载

这是网站:

比较

http://www.propasiarealty.com // Sends you to the 404 page

鉴于

http://www.propasiarealty.com/index.php // Loads the homepage.

不知道到底出了什么问题,请帮忙。

下面是Filezilla截图:

编辑 01

请看我的 HTACCESS... 快照


更新 02 我修改了HTACCESS还是没有成功,现在看起来像:

DirectoryIndex index.php

#ErrorDocument 400     /400.html

#ErrorDocument 401     /401.html 

ErrorDocument 403     /errs/404.php

ErrorDocument 404     /errs/404.php

#ErrorDocument 500     /500.html

Options -Indexes

但还是不行


更新 03 [这有效]

@HPierce 建议的解决方案是将 HTACCESS 修改为如下所示:

DirectoryIndex index.php


RewriteEngine on  

RewriteRule ^$ index.php

    #ErrorDocument 400     /400.html

    #ErrorDocument 401     /401.html 

    ErrorDocument 403     /errs/404.php

    ErrorDocument 404     /errs/404.php

    #ErrorDocument 500     /500.html

    Options -Indexes

【问题讨论】:

检查您的 .htaccess 文件 请参阅使用 HTACCESS 快照编辑。泰! 【参考方案1】:

在您的 .htaccess 文件中为 DirectoryIndex 添加新声明。

DirectoryIndex index.php

使用 Apache,默认的 DirectoryIndex 将设置为 index.html,这与您要提供的 index.php 页面不同。

或者,您可能希望将这两个文件都指定为您的 DirectoryIndex

DirectoryIndex index.html index.php

如果 index.html 不可用,这将首先检查 index.html,然后检查 index.php。这可能是更好的解决方案,因为更改默认值可能会使其他必须在您网站上工作的人感到困惑。

关于 mod_dir 的 Apache 文档:http://httpd.apache.org/docs/2.4/mod/mod_dir.html

如果这不起作用,您可以考虑添加重写规则 - 尽管不建议这样做。重写规则会中断传入的 HTTP 请求并对其进行重组以匹配您的服务器设置方式。

RewriteEngine on 
RewriteRule ^$ index.php

此重写规则仅匹配对http://www.propasiarealty.com 的请求,将不匹配 http://www.propasiarealty.com/

使用重写规则需要安装 mod_rewrite - 更多信息在这里http://httpd.apache.org/docs/current/mod/mod_rewrite.html

【讨论】:

您可以访问 httpd.conf,Apache 的全局配置文件吗?如果是这样,请发布其中的一些内容 - 特别强调任何带有AllowOverrides 的行。 httpd.conf 位于哪里? $ apachectl -V 应该告诉你(它因环境而异)。 ***.com/questions/12202021/… 哎呀,我不认为我可以得到那个文件......这是我第一次面对这个问题,并且几乎尝试了我迄今为止所知道的一切......还有什么可能导致这样的行为不端?..再次感谢您的建议! 我不太愿意提出这个建议,因为它是如此可怕的肮脏黑客,不应该在这里需要。但是请尝试将其添加到您的 .htaccess 文件中:RewriteEngine on RewriteRule ^$ index.php 其中 RewriteEngineRewriteRule 位于不同的行。您可以在此处对其进行测试并证明它可以与适当配置的服务器一起使用:htaccess.madewithlove.be

以上是关于我在使用 Index.php 加载主页时收到 404,但 index.php 可用于直接链接,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

跟随链接时无法正确加载 Css

在404错误上显示主页

在没有 index.php 的情况下,codeigniter 重定向不起作用?

加载位于博客文件夹外的 index.php 内容以发布单页

当我在 iOS 应用程序的后台任务(使用 GCD)中间按下 1 次主页按钮时,由于信号 9 而终止

返回 Jquery 站点主页时无法访问脚本