我正在将我的一个网站从dreamhost共享到dreamhost ps。 将复制的文件和DNSparsing到新的服务器。 然而试图得到一个pagw带来了错误403访问被禁止。
如果我从网站的目录中删除.htaccess文件。 主页加载好,但自然其他页面不(因为它需要重写当前在.htaccess中定义)。
我相信httpd.conf阻止在新服务器中使用.htaccess。 引用:
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
我试图删除htaccess并在httpd.conf中实现重写规则。 没有成功。
我的问题:1.我尝试AllowOverride所有使.htacces工作。 它没有改变任何东西。 还有什么要检查/完成它的工作?
我在httpd.conf中创build了一个目录部分,其中包含httpdocs的目录,并将所有的重写规则放在那里。 (并重新启动服务器)。 它没有效果。 任何提示,应该做些什么来添加与rewriterules的目录部分.httpd.conf和疑难解答提示?
如何检查mod-rewrite是否在这个服务器上工作? 它在httpd.conf文件中启用。 服务器处于fastcgi模式。
任何其他技巧,非常赞赏。
谢谢,尼罗
如何在httpd.conf中的.htaccess中移动重写规则(并使其工作)
Directory /指令定义系统上所有目录的基本规则。 通常在定义一个Directory /指令后,你有一个Directory / my / web / root / here指令,这个指令具有更宽松的configuration设置。
不要混淆目录/意味着您的网站的webroot,情况并非如此。
你的重写规则应该被应用在Directory / my / web / root / here指令中,或者用于特定站点的VirtualHost(如果你正在使用VirtualHosts,非常常见)。
将DirectoryOverride中的AllowOverride更改为All /可能会被已定义的Directory / my / web / root / here或特定站点的VirtualHost覆盖。
也许如果你可以将整个Apacheconfiguration粘贴到( http://www.paste2.org/ ),我们可以更好地了解这个问题。
Apache用户应具有对.htaccess文件的读取权限。
感谢您的答案。 我终于发现,实际的httpd.conf文件是在另一个path下,由于权限,这是不可见的。 以防万一有人需要它在:
/ usr / local / dh / apache2 / apache2 -psnum / etc /(psnum是服务器号)
我把重写放在我的网站的目录部分下,一切正常。