使用htaccess RewriteRule时,apache没有重定向


No redirection by apache when using htaccess RewriteRule

我最近刚刚设置了一个新的开发环境,从那以后,我就无法访问主页之外的任何页面。

例如,如果我转到:www.herpanderp.com/contact_us,它会抛出一个404错误。

没有名为/contact_us的目录,我的index.php中有代码,它将URL作为参数进行处理,并根据需要包含/需要适当的代码。

这是我根目录中的条目。htaccess:

RewriteRule ^([^.]+)$ /index.php?url=$1 [L,QSA]

如果我做phpinfo,我会在apache2handler下得到以下内容(这样我就知道mod_rewrite已经安装):

加载的模块核心预处理http_core mod_so mod_auth_basicmod_auth_digest mod_authn_file mod_authn-alias mod_authn_anonmod_authn_dbm mod_authn_default mod_authz_host mod_authz _usermod_authz_owner mod_authz组文件mod_authz-dbm mod_authzm_defaultmod_log_config mod_logio mod_env mod_mime_magic mod_expiresmod_deflate mod_headers mod_usertrack mod_setenvif mod_mime mod_statusmod_autoindex mod_info mod_vhost_alias mod_negotification mod_dirmod_actions mod_speling mod_userdir mod_aliasmod_rewritemod_cache mod_disk_cachemod_php5 mod_ssl

如果我去/contact_us,为什么不通过index.php?我在脚本的第1行有一个骰子,它没有击中它。然而,当我执行www.herpanderp.com时,它是否有效?url=联系人。

我觉得这是一个apache配置问题,因为代码可以在其他环境中运行。

确保在httpd.conf中,有问题的站点设置了AllowOverride,否则重写将无法覆盖该站点的默认设置。

.htaccess中添加第一行:

RewriteEngine On

它有效吗?