我刚刚安装了Drupal 6.19的新副本,以加快如何编写模块的速度。但由于某种原因,重写模块不适用于Drupal。
我检查了什么:
apachectl -M
>> 已安装 php_info()
>> 表示还安装了重写 .htaccess
文件AllowOverride All
我在这里选择了。看到任何地方,但Drupal设置不允许我启用设置,他们的测试只是访问一个应该工作,如果重写模块在那里。
我的规格: Mac OS X 10.6 Snow Leopard 使用内置Apache和PHP5
谢谢!
答案 0 :(得分:7)
最后但同样重要的是,您必须授权您的虚拟主机或目录使用.htaccess
。
AllowOverride All
<强>更新强>
我无法弄清楚你的确切问题,但总是值得测试Apache实际上正在解析你的.htaccess
文件。出于语法错误,看看是否收到500 Internal Server Error
消息。另外,使用不涉及Drupal的简单重定向规则测试mod_rewrite
。
答案 1 :(得分:3)
还有两件事要检查:
.htaccess
对于您的apache进程是否可读(是的,我读过您仔细检查过它,但是这包括文件权限吗?)另外,我尝试简化测试场景 - 从vhost配置中的简单重写指令开始。一旦工作,将其移动到vhosts文档根目录顶层的.htaccess,然后移动到子目录(如果需要/使用)。
答案 2 :(得分:2)
确保如果安装位于子目录中,则用户名是rewriteBase的一部分
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
RewriteBase /~username/drupal**
答案 3 :(得分:1)
如果您在一个子文件夹中运行Drupal安装,例如:example.com/drupal,然后在.htaccess文件中启用“RewriteBase /”,它可能对您有帮助。
答案 4 :(得分:1)
干净的网址可能是www.example.com/fisherman而不是www.example.com/data/pages/fisherman.php
某些apache安装具有开箱即用的干净URL功能。有两个步骤需要正确配置才能正常工作。
Enable rewrite module
Allow .htaccess file overrides
这两个步骤都需要SSH root访问您的服务器。因此,如果您在共享主机上,这可能不适合您。打开终端:
要启用重写模块,您可以键入以下命令
sudo a2enmod rewrite
现在输入
sudo service apache2 restart
启用更改。您可以通过键入
来检查它是否正常工作sudo apache2ctl –M
将出现一个列表。寻找“rewrite_module”。
答案 5 :(得分:0)
在httpd.conf文件中查找此行
#LoadModule rewrite_module modules/mod_rewrite.so
如果评论 只需取消注释它重新启动apache服务器,然后尝试在drupal管理中启用Clean URL Section
答案 6 :(得分:0)
我将以下内容添加到我的.htaccess文件中并解决了。我的问题特别是使用Rackspace / CentOS图像进行操作
选项-MultiViews
答案 7 :(得分:0)
正如ÁlvaroG。Vicario提到的,首先要做的是在.htaccess
文件的顶部添加类似ghfdiddfdjf
的内容,这会引发内部错误。如果没有,则表示未读取.htaccess
文件。我不是,我找到了以下修复:
在etc/apache2/sites-enabled
文件夹中,有一个名为default-000
的文件。我在此文件中更改了文件中 2 位置的AllowOverride All
。