如何在本地Apache服务中访问不带扩展名的.html、.php文件
Apache 实现无.html后缀访问资源配置方法
下面提供两种可直接落地的配置方案,二选一即可:
方案1:启用MultiViews内容协商(操作最简单)
- 打开Apache根目录下的配置文件
C:\Apache24\conf\httpd.conf - 找到
LoadModule negotiation_module modules/mod_negotiation.so配置行,删除行首的#启用协商模块 - 找到
<Directory "C:/Apache24/htdocs">配置区块,修改Options配置项,追加MultiViews参数,修改后示例:Options Indexes FollowSymLinks MultiViews - 保存配置文件后,执行
httpd.exe -k restart重启Apache服务即可生效,此时直接访问127.0.0.1/search-html/test/low会自动匹配到对应low.html文件。
方案2:配置mod_rewrite重写规则(灵活度更高,支持自定义规则)
- 打开
C:\Apache24\conf\httpd.conf配置文件 - 找到
LoadModule rewrite_module modules/mod_rewrite.so配置行,删除行首的#启用重写模块 - 找到
<Directory "C:/Apache24/htdocs">配置区块,将AllowOverride配置项的值改为All,允许目录下的.htaccess文件生效 - 进入项目目录
C:\Apache24\htdocs\search-html\test,新建名为.htaccess的文件(Windows环境下无法直接创建点开头文件时,可先新建txt文件,重命名时输入.htaccess.系统会自动生成正确名称的文件) - 将以下规则写入.htaccess文件并保存:
RewriteEngine On # 排除真实存在的目录 RewriteCond %{REQUEST_FILENAME} !-d # 校验添加.html后缀后对应的文件真实存在 RewriteCond %{REQUEST_FILENAME}.html -f # 执行重写 RewriteRule ^(.*)$ $1.html [L] - 执行
httpd.exe -k restart重启Apache服务即可生效。
注意:两种方案无需同时配置,选择任意一种即可满足需求。如果后续需要适配更多后缀类型(如.php),建议选择方案2修改重写规则即可。
内容的提问来源于stack exchange,提问作者Priya Kumari
相关产品推荐
相关产品推荐

