drupal的url重写,后台有地方进行控制的,administer=>Site configuration=>Clean urls在这里我们可以选择,开启url重写,或者是不开启,里面有一个单选框,如果是不可选的,说明你服务器中的url重写并没有配置好,会提示以下错误
Your system configuration does not currently support this feature. The handbook page on Clean URLs has additional troubleshooting information.
要想使用http://localhost/drupal/?q=admin/settings/clean-urls这里面的单选可以点,要做到一下三步
一,查机apache的服务器是不是加载了mod_rewrite.so
有很多种方法可以查看
1,apache2ctl -M
2,我们可以打开一下,apache的配置文件httpd.conf,看里面有没有LoadModule rewrite_module modules/mod_rewrite.so,如果没有的话就加上,如果存在把前面的注释#去掉
3,对于做php的人来说,我们可以通过phpinfo();来查看一下rewrite模块是否可用
二,重新规则
安装完drupal后,在drupal的安装根目录下吗,会自动产生一个.htaccess的文件,里面带了一些重写规则,你可以用这些规则。
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / //在这里/代表的根目录,RewriteBase /drupal/ ,表示重写到/drupal/目录下面 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] </IfModule>
我们也可以利用apache的配置文件来完成,你可以放在httpd.conf里面,或者放在httpd_vhost.conf里面
<Directory /home/zhangy/www/drupal> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] </Directory>
还有一点,也是是容易让人疏忽的一点就是,
<Directory "/home/zhangy/www/drupal"> 。。。。。。。。。。 AllowOverride All //默认情况下,是none的,把none改成all 。。。。。。。 </Directory>
三,进入drupal后台,启用url rewrite功能
administer=>Site configuration=>Clean urls现在我们要以发现Your server has been successfully tested to support this feature
说明rewrite没什么问题,选中enabled,保存一下就搞好了。
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/drupal/1195.html