清理URL无法正常工作,安装了mod_rewrite模块

时间:2010-09-25 06:44:18

标签: apache drupal mod-rewrite drupal-6

我刚刚安装了Drupal 6.19的新副本,以加快如何编写模块的速度。但由于某种原因,重写模块不适用于Drupal。

我检查了什么:

  • $ apachectl -M>> 已安装
  • 当前服务器上的
  • php_info()>> 表示还安装了重写
  • 我还{4}}我的Drupal根文件夹中的.htaccess文件
  • 更新:检查httpd.conf是否为AllowOverride All

我在这里选择了。看到任何地方,但Drupal设置不允许我启用设置,他们的测试只是访问一个应该工作,如果重写模块在那里。

我的规格: Mac OS X 10.6 Snow Leopard 使用内置Apache和PHP5

谢谢!

8 个答案:

答案 0 :(得分:7)

最后但同样重要的是,您必须授权您的虚拟主机或目录使用.htaccess

AllowOverride All

<强>更新

我无法弄清楚你的确切问题,但总是值得测试Apache实际上正在解析你的.htaccess文件。出于语法错误,看看是否收到500 Internal Server Error消息。另外,使用不涉及Drupal的简单重定向规则测试mod_rewrite

答案 1 :(得分:3)

还有两件事要检查:

  1. 验证您的.htaccess对于您的apache进程是否可读(是的,我读过您仔细检查过它,但是这包括文件权限吗?)
  2. Enable rewrite logging - 这可能会给你一些关于它失败的提示。从log level开始,根据需要增加/减少。 (别忘了以后再把它关掉,因为它是一个巨大的性能生猪;)
  3. 另外,我尝试简化测试场景 - 从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访问您的服务器。因此,如果您在共享主机上,这可能不适合您。打开终端:

  1. 启用重写模块
  2. 要启用重写模块,您可以键入以下命令

    sudo a2enmod rewrite
    

    现在输入

    sudo service apache2 restart
    

    启用更改。您可以通过键入

    来检查它是否正常工作
    sudo apache2ctl –M
    

    将出现一个列表。寻找“rewrite_module”。

    http://codeontrack.com/enable-clean-urls-apache/

答案 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