我正在尝试使用 Apache 的 mod_rewrite 模块从 Yii 应用程序动态生成的 url,该应用程序始终包含 index.php 作为路由器/引导程序,通过 .htaccess 可用于通过 Web 浏览器浏览的静态 url。
示例:localhost/projectname/index.php/commentfeed.xml
是动态生成的页面,但我希望它能够通过localhost/projectname/commentfeed.xml
我正在运行的 Apache 版本是:Apache/2.4.4 (Win32) OpenSSL/1.0.1e PHP/5.5.0通过 XAMPP 用于我的开发平台。mod_rewrite 模块存在并加载在 Apache 的 httpd.conf 文件中。
我在 localhost/projectname/ 中的 .htaccess 如下:
#Turning on the rewrite engine is necessary for the following rules and features.
#FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.so>
Options +FollowSymlinks
RewriteEngine On
#Unless an explicit file or directory exists,
#redirect all request to Yii entry script.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
现在,当我尝试通过没有 index.php (localhost/projectname/commentfeed.xml) 的浏览器访问 commentfeed.xml 时,我收到 404 错误 - 找不到对象!。
我查看了以下指南和 SO 问题:URL 重写指南、mod_rewrite 文档和SO:调试 .htaccess 重写规则的提示,但没有一个明确说明我在寻找什么。另外,我的 apache 错误日志没有报告任何关于 .htaccess 文件的信息。对于正确使用的任何帮助或指导将不胜感激。