繁体   English   中英

使用htaccess RewriteRule时,apache无法重定向

[英]No redirection by apache when using htaccess RewriteRule

我最近刚刚建立了一个新的开发环境,并且自从我无法访问主页以外的任何页面以来,我一直无法访问。

例如,如果我转到: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

是否有任何原因导致我不通过index.php进入/ contact_us? 我在脚本的第1行上死了,而且还没有实现。 但是,当我执行www.herpandderp.com/?url=contact时,它确实起作用。

我认为这是一个Apache配置问题,因为代码可以在其他环境下正常运行。

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

在您的.htaccess添加第一行:

RewriteEngine On

工作正常吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM