我在使用 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
其中 RewriteEngine
和 RewriteRule
位于不同的行。您可以在此处对其进行测试并证明它可以与适当配置的服务器一起使用:htaccess.madewithlove.be以上是关于我在使用 Index.php 加载主页时收到 404,但 index.php 可用于直接链接,为啥?的主要内容,如果未能解决你的问题,请参考以下文章
在没有 index.php 的情况下,codeigniter 重定向不起作用?