Apache 使用文件类型扩展 REQUEST_FILENAME

Apache 使用文件类型扩展 REQUEST_FILENAME

我在 Apache22 服务器上有一个 .htaccess 文件。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?p=$1 [L]

这个想法是,当请求是 /testpage 时,它​​应该被重写为/index.php?p=testpage。问题是 apache 在我的文件之前执行了写入,因此实际请求是testpage.xml实际存在的。因此,第一个 RewriteCond 是较新的 true,并且我的重写规则从未应用于请求/testpage

因此,apache 在我的 .htaccess-files 激活之前进行重写/testpage => /testpage.xml。modrewritelog 也表明请求的文件是/testpage.xml

该服务器应在 FreeBSD 服务器上进行标准设置。我知道这在其他服务器上也可以工作。

答案1

我猜你已经打开Options MultiViews了,并且mod_negotiation在处理该请求之前mod_rewrite

相关内容