URL 404s在子目录(.htaccess)

时间:2017-04-06 19:19:44

标签: php html apache .htaccess

嘿我试图链接到一个子目录并在该目录中加载index.php,但它返回404未找到错误。文件结构如下:

| index.php
| .htaccess
| subfolder
     | index.php
     | about.php

当我转到mysite.com/subfolder时,我希望加载index.php。我知道问题出在我的.htaccess文件中,因为当我删除它时,URL工作。这是.htaccess中的代码:

Options +MultiViews

# Remove file extensions from page names

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

# Disable Index Listing
Options -Indexes

我的猜测是,因为我删除了文件扩展名,服务器正在查找mysite/subfolder.php并且无法找到它,所以它是404s。然而,我是.htaccess文件的新手,他们对我来说仍然非常神秘。在线搜索有很多代码,但没有解释任何有效的方法。有关如何解决此问题以及修复工作原理的任何想法都会有所帮助!

1 个答案:

答案 0 :(得分:1)

如果您启用MultiViews选项,那么您不需要重写规则来处理扩展程序。

将这些行保留在.htaccess中:

Options +MultiViews
DirectorySlash On

DirectoryIndex index.php

并删除其他所有内容。然后使用mysite.com/subfolder/网址

进行测试