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

时间:2012-02-24 17:31:48

标签: php apache mod-rewrite

我刚刚设置了一个新的开发环境,因为我无法访问我网站上的任何主页页面。

例如,如果我访问:www.herpandderp.com/contact_us,则会抛出404错误。

没有名为/ contact_us的目录,我在index.php中有代码,它将URL作为参数处理,接受并根据需要包含/要求相应的代码。

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

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

如果我做一个phpinfo,我在apache2handler下得到以下内容(所以我知道安装了mod_rewrite):

  

已加载模块核心prefork http_core mod_so mod_auth_basic   mod_auth_digest mod_authn_file mod_authn_alias mod_authn_anon   mod_authn_dbm mod_authn_default mod_authz_host mod_authz_user   mod_authz_owner mod_authz_groupfile mod_authz_dbm mod_authz_default   mod_log_config mod_logio mod_env mod_mime_magic mod_expires   mod_deflate mod_headers mod_usertrack mod_setenvif mod_mime mod_status   mod_autoindex mod_info mod_vhost_alias mod_negotiation mod_dir   mod_actions mod_speling mod_userdir mod_alias mod_rewrite   mod_cache mod_disk_cache mod_file_cache mod_mem_cache mod_perl   mod_php5 mod_ssl

有什么理由,如果我去/ contact_us我不通过index.php?我在剧本的第1行有一个骰子而且没有击中它。但是,当我执行www.herpandderp.com/?url=contact时 工作。

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

2 个答案:

答案 0 :(得分:1)

确保在httpd.conf中,相关网站的AllowOverride全部设置,否则重写将无法覆盖该网站的默认设置。

答案 1 :(得分:0)

.htaccess添加第一行:

RewriteEngine On

有效吗?