php - 当重写引擎删除 .php 和 .html 时,无法访问文件夹中的索引

标签 php apache .htaccess mod-rewrite

当重写引擎删除 .php.html 时,我在访问索引文件时遇到了一些问题...

我在“public_html/user/username/index.php”中有一个索引 但当我尝试访问其中一个时,它会将我带到错误页面

mydomain.com/user/用户名

mydomain.com/user/username/index

mydomain.com/user/username/index.php

当我尝试访问 public_html 文件夹中的文件夹中的任何文件时,比方说

public_html/user/username.php == mydomain.com/user/username <-- 有效

这是怎么回事?

我的.htaccess:

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

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

重写引擎已启动,一切正常......

最佳答案

在添加这些扩展之前,您应该检查 php 和 html 文件是否存在:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^.]+)/?$ $1.html [L]

关于php - 当重写引擎删除 .php 和 .html 时,无法访问文件夹中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31265871/

相关文章:

php - 通过引用修改数组的问题

php - Zend 无法启动与 Redis 的 session

php - 了解 InnoDB 外键

java - Hadoop 作业不会被杀死

apache - 如何阻止 POST 请求的 IP,但不阻止 GET?

php - 为什么我的博客发不了?

java - Tomcat WAR 部署创建一个 404

django - Apache 不提供来自 Django 应用程序的静态文件

.htaccess - urlencoded 正斜杠破坏了 URL

apache - mod_rewrite 与多个查询字符串?