我有一个需要在本地Web服务器上打开的php应用程序。我在我的VM上运行Windows 7。已安装php 7.3.6,mysql,apache 2.4。
order deny,allow
RewriteEngine On
RewriteBase /
RewriteRule .* index.php?url=$0 [QSA,L]
在每次请求之后,我还看到htaccess
改回其初始状态,显示为“ order deny,allow”。
httpd.conf
出问题了吗?
答案 0 :(得分:0)
您可能没有运行mod_access_compat
,这意味着Order
不可用,因为它在Apache 2.4中已弃用(请参阅https://httpd.apache.org/docs/2.4/howto/access.html)
现在,.htaccess
文件被覆盖的原因可能在于您正在运行的PHP代码中。某些应用程序会尝试自动进行自我配置,并会编写自己的.htaccess
文件以确保其正常运行。
这个特定的应用程序试图编写不推荐使用的命令而不检查您正在运行的Apache
版本是否能够处理这些命令这一事实令人担忧,并且可能意味着它已过时。
对应用程序文件进行全局搜索,并寻找该Order deny, allow
规则,我很确定您会找到罪魁祸首。
如果您可以运行该代码的较新版本,请执行此操作;如果不能运行,并且可以手动进行修补,则将其更改为Require all granted