2009年3月5日星期四

i3原创:在 Lighttpd 实现Drupal 的Clean URLS

由于要将网站 从 Apache 网页服务器转为 Lighttpd , 但 Lighttp 不支持 .htaccess文件 .

在网上找了说用 Lighttpd 的 mod_magnet 模块,但没有成功实现。

后查找用用 Lighttpd 的 mod_rewrite 可以简单的实现. 过程:
 1. 修改Lighttpd配置文件,Lighttpd目录下的conf/lighttpd-inc.conf配置文件,那么就修改这个文件,开启rewrite模块:

server.modules = (
### rewrite模块
mod_rewrite"
)

  2 . 参考Drupal默认的.htaccess文件里rewrite模块部分:


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


  看到没有,只有一条RewriteRule,就是它了。那么怎么样把它“移植”到Lighttpd的配置文件里呢?很简单,在Lighttpd配置文件里的相关站点添加:

#### url handling modules (rewrite, redirect, access)
url.rewrite = ( "^/(.*.gif|.*.png|.*.jpg|.*.pdf|.*.js|.*.css)" => "/$1", "^/(.*)$" => "/index.php?q=$1" )

  3. 然后进入Drupal目录,修改sites/default/settings.php文件,在末尾处添加:

/**
* Clean URL
**/
$conf['clean_url']=1;

  现在访问http://***.*** /,Drupal 网站一切正常了哦! 这样让 Lighttpd 也支持安装 Druapl了。


但是当Drupal 的 page带参数是无法显示 page参数。所以可以再修改一下
url.rewrite-final = (
"^/system/test/(.*)$" => "/index.php?q=system/test/$1",
"^/system/test-clean-url/(.*)$" => "/index.php?q=system/test-clean-url/$1",
"/rss.xml$" => "/index.php?q=rss.xml",
"^/search/(.*)$" => "/index.php?q=search/$1",
"^/([^.?]*)\?(.*)$" => "/index.php?q=$1&$2",
"^/([^.?]*)$" => "/index.php?q=$1",
"^/([^.?]*\.html)$" => "/index.php?q=$1",
"^/([^.?]*\.htm)$" => "/index.php?q=$1",
"^/([^.?]*\.php)$" => "/index.php?q=$1",

)

加入您要修改的转内容。

---------------------------------------
i3Server 写

www.i3.net.cn
www.86-00.com

没有评论: