Apache 文件出现在目录列表中,但尝试访问时出现 404 错误?

Apache 文件出现在目录列表中,但尝试访问时出现 404 错误?

请原谅我的知识缺乏,这比其他任何事情都更是一个学习项目。

我有一个 Linux 机器,它运行得很好。当我访问 example.com/css 时,它说那里有一个文件,bootstrap.min.css。当我访问 example.com/css/bootstrap.min.css 时,它给了我一个 404 错误。

我只有一个 htaccess 文件,用于从 URL 中删除 index.php,我还将其重命名为 htaccess(而不是 .htaccess,这样 apache 就找不到它了),并且我重新启动了服务器,但还是没有帮助。我还尝试将 css 文件 chmod 为 755,但没有帮助。

htaccess 文件的内容:

RewriteEngine On
 RewriteBase /

 # Allow any files or directories that exist to be displayed directly
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

请帮忙,我对此很困惑。我尝试了多次谷歌搜索,但一无所获。

编辑:我发现解决方案是将 htaccess 文件重命名为完全不同的名称并重新启动。还有什么方法可以实现 .php 的丢失吗?

答案1

我建议用以下内容替换您提供的 .htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]

此答案来自https://stackoverflow.com/questions/4908122/removing-the-php-extension-with-mod-rewrite

Mod_rewrite 非常强大,但也常常很难理解它到底在做什么。

如果新的 .htaccess 文件内容仍然不能满足您的要求,我发现打开重写日志来查看到底发生了什么通常会有所帮助: http://httpd.apache.org/docs/current/mod/mod_rewrite.html#logging

实时跟踪日志文件输出的一个方便的命令是tail -f <path-to-log-file>

相关内容