嘿我试图链接到一个子目录并在该目录中加载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文件的新手,他们对我来说仍然非常神秘。在线搜索有很多代码,但没有解释任何有效的方法。有关如何解决此问题以及修复工作原理的任何想法都会有所帮助!
答案 0 :(得分:1)
如果您启用MultiViews
选项,那么您不需要重写规则来处理扩展程序。
将这些行保留在.htaccess中:
Options +MultiViews
DirectorySlash On
DirectoryIndex index.php
并删除其他所有内容。然后使用mysite.com/subfolder/
网址