XAMPP环境下MVC项目访问localhost/mvc自动跳转并隐藏.php后缀问题
配置调整步骤
1. 先确认XAMPP基础配置(必做,否则.htaccess不生效)
- 打开XAMPP控制面板,点击Apache行的「Config」按钮,选择
httpd.conf - 搜索
mod_rewrite.so,去掉该行前面的#注释,开启重写模块 - 搜索
<Directory "C:/xampp/htdocs">区块,把里面的AllowOverride None改成AllowOverride All,保存后重启Apache
2. 新增MVC根目录的.htaccess文件
在c/xampp/htdocs/mvc/文件夹下新建.htaccess文件,写入以下配置,实现访问localhost/mvc自动跳转到public目录:
RewriteEngine On # 所有请求重定向到public子目录 RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L]
3. 修改public目录下的.htaccess配置
你原有配置的RewriteBase路径写错了,且缺少隐藏.php后缀的规则,替换成以下内容:
RewriteEngine On # 修正RewriteBase为你项目public对应的URL路径 RewriteBase /mvc/public/ # 隐藏.php后缀规则 RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L] # 原有请求转发到入口文件的规则 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1 [L,QSA]
效果验证
配置完成后重启Apache:
- 访问
localhost/mvc会自动加载public/index.php内容,不会展示根目录文件列表 - 访问
localhost/mvc/xxx会自动转发给public/index.php处理,访问存在的php文件时URL不会显示.php后缀
内容的提问来源于stack exchange,提问作者Danish Mehmood
相关产品推荐
相关产品推荐

