我已将.htaccess文件推送到生产服务器,但它们不起作用.重启是下一步,还是应该检查其他内容.
在这里重新启动不要求更改为.htaccess.还有别的错.
确保您的.htaccess包含该声明
RewriteEngine on
这是必需的,即使它也存在于httpd.conf中.还要检查.htaccess是否可由httpd进程读取.
检查error_log - 如果正在使用它,它会告诉你.htaccess中的任何错误.在.htaccess中添加有意的语法错误是一个很好的检查,以确保文件正在使用 - 您应该在同一目录中的任何页面上得到500错误.
最后,您可以使用httpd.conf中的以下命令启用重写日志:
RewriteLog"logs/rewritelog"
RewriteLogLevel 7
这样生成的日志文件将为您提供关于哪些重写规则匹配以及如何处理它们的详细信息.
无:
Apache允许通过放置在Web树中的特殊文件来分散管理配置.通常会调用特殊文件
.htaccess
,但可以在AccessFileName指令中指定任何名称...由于每次请求都会读取.htaccess文件,因此对这些文件所做的更改会立即生效...
从apache文档:最常见的问题是,未设置AllowOverride以使您的配置指令得到遵守.确保您没有对相关文件范围有效的AllowOverride无效.对此进行的一个很好的测试是将垃圾放入.htaccess文件并重新加载.如果未生成服务器错误,则几乎肯定会使AllowOverride无效.