如何在Azure PHP Web App中移除.php后缀?.htaccess规则无效求助
在Azure PHP Web App中移除.php后缀的解决方案(针对你的.htaccess规则未生效问题)
我来帮你搞定这个问题——你用的.htaccess规则没生效,大概率是Azure Web App的环境特性导致的,毕竟它分Linux和Windows两种部署计划,处理URL重写的方式完全不一样。我给你分情况一步步来解决:
情况1:你的Web App是Linux计划(Apache环境)
如果是Linux环境,.htaccess理论上是支持的,但可能有几个配置环节没到位:
先确认.htaccess的位置和权限
确保这个文件放在网站的根目录(也就是你部署代码的/site/wwwroot文件夹下),Azure部署代码后默认权限是没问题的,但如果是手动上传的,记得检查文件是否设置为可读。开启Apache的.htaccess覆盖权限
Azure Linux的Apache默认可能限制了目录的AllowOverride配置,导致.htaccess规则不生效。你需要自定义Apache配置来开启:- 在代码根目录创建
.config/apache2/文件夹(注意前面的点,是隐藏文件夹) - 在这个文件夹里新建
httpd.conf文件,写入以下内容:<Directory /home/site/wwwroot> AllowOverride All Require all granted </Directory> - 重启你的Web App,让新配置生效。
- 在代码根目录创建
调整Rewrite规则(可选但推荐)
你的现有规则逻辑是对的,但加上L标志可以确保规则执行后终止后续处理,避免冲突:RewriteEngine On # 跳过实际存在的目录 RewriteCond %{REQUEST_FILENAME} !-d # 确认对应的.php文件确实存在 RewriteCond %{REQUEST_FILENAME}\.php -f # 重写请求到目标.php文件,L标志表示终止后续规则 RewriteRule ^(.*)$ $1.php [L]要是希望访问根域名直接跳转到
index.php,可以再加一行:DirectoryIndex index.php
情况2:你的Web App是Windows计划(IIS环境)
Windows计划下IIS根本不认.htaccess,得用web.config来配置URL重写。你需要在网站根目录创建web.config文件,粘贴以下内容:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Remove PHP Extension" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions> <!-- 忽略实际存在的目录 --> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <!-- 忽略实际存在的非PHP文件 --> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <!-- 确保对应的.php文件存在 --> <add input="{REQUEST_FILENAME}.php" matchType="IsFile" /> </conditions> <action type="Rewrite" url="{R:1}.php" /> </rule> </rules> </rewrite> <!-- 设置默认首页为index.php --> <defaultDocument> <files> <add value="index.php" /> </files> </defaultDocument> </system.webServer> </configuration>
创建好之后重启Web App,再访问不带.php后缀的路径,就能正常映射到对应的PHP文件了。
最后给你几个测试小技巧
- 测试前清空浏览器缓存,避免旧缓存干扰结果
- 先拿一个确定存在的PHP文件测试,比如访问
yourdomain.com/test(对应test.php),看是否能正常加载 - 如果还是不行,去Azure Portal的「监控」→「日志流」里看日志,里面会有重写相关的错误信息,能帮你快速定位问题
内容的提问来源于stack exchange,提问作者James_Inger
相关产品推荐
相关产品推荐

