`
halfcool
  • 浏览: 45415 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用Lighttpd的rewrite模块支持Drupal/WordPress的Clean URLS

    博客分类:
  • Web
阅读更多

 

  原来使用Apache2.2,只要开启使用rewrite模块,在Drupal中:管理(admin)-站点设置(settings)-简洁链接 (Clean URLS)里,Drupal会自动检测可以使用简介链接,选择启用(enable),就会使用默认的.htaccess文件来完成简洁链接的功能。
  但是,当我把Apache2.2换为Lighttpd1.4.xx后,Drupal无法自动检测是否可以使用简洁链接功能。google一阵,发现解决的方法其实很简单。
  首先,修改Lighttpd配置文件,比如我使用Lighttpd目录下的conf/lighttpd-inc.conf配置文件,那么就修改这个文件,开启rewrite模块:

<!---->server.modules  =  (
### 其他模块

### rewrite模块
" mod_rewrite "
)


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

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


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

<!---->#### url handling modules (rewrite ,  redirect ,  access)
url.rewrite 
=  (  " ^/cms/(.*)$ "   = " /cms/index.php?q=$1 "  )


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

<!---->/**
* Clean URL
**/
$conf
[ 'clean_url' ] = 1 ;


  现在访问http://wind/cms/,发现大部分功能都正常,比如用户登录。但是页面很粗糙,多媒体文件(图片什么的)和CSS排版都 没有加载,于是还需要增加一个RewriteRule,放在"^/cms/(.*)$" => "/cms/index.php?q=$1"的前面,现在的RewriteRule配置是这样子的:

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


  现在访问http://wind/cms/,一切正常了哦!
  WordPress的设置就更加简单了,依然查看WordPress 目录下的.htaccess文件,查看Apache下WordPress的RewriteRule,在Lighttpd的rewrite模块配置里添加一 条RewriteRule,最后Drupal/WordPress的rewrite模块配置是类似这样子的:

<!---->#### url handling modules (rewrite ,  redirect ,  access)
url.rewrite 
=  (  " ^/blog/(archives|categories|comments|feed)/ "   = " /blog/index.php " ,   " ^/cms/(.*.gif|.*.png|.*.jpg|.*.pdf|.*.js|.*.css) "   = " /cms/$1 " ,   " ^/cms/(.*)$ "   = " /cms/index.php?q=$1 "  )


  哈哈,是不是很简单呢?不过要注意,在rewrite模块配置之前请不要设置server.error-handler-404,不然只显示404错误哦~
   (注:我是在公司局域网里架设的服务器,主机域名为http://wind/,www根目录为G:\pub。WinXP下Apache2 /Lighttpd+PHP5+MySQL5做服务器。Lighttpd使用FastCGI。Drupal目录为G:\pub \cms,WordPress目录为G:\pub\blog。)

分享到:
评论

相关推荐

    ubuntu lighttpd实现websocket

    1、下载mongoose使用mongoose中的example中的websocket_chat,实现websocket 2、websocket_chat源码下载路径 官网:https://cesanta.com 论坛:https://forum.mongoose-os.com/index.php?p=/categories/mongoose ...

    lighttpd配置和启动脚本

    5. **模块加载**:通过`mod_*`来启用或禁用特定功能,如`server.modules = ("mod_access", "mod_rewrite")`。 6. **URL重写**:`url.rewrite` 使用正则表达式进行URL重写,可以实现动态请求的处理和SEO优化。 7. **...

    lighttpd fastcgi

    var.server_root = "/home/caoft/lighttpd/lighttpd_websocket_fastcgi/http_server" var.state_dir = "/home/caoft/lighttpd/lighttpd_websocket_fastcgi/http_server" var.home_dir = "/home/caoft/lighttpd/...

    lighttpd-1.4.30.tar.gz

    lighttpd支持模块化扩展,可以根据需求选择安装和启用不同的模块,如mod_access、mod_rewrite、mod_deflate等,以实现更高级的功能。 10. **社区支持与更新** lighttpd拥有活跃的开发者社区,用户可以通过官方...

    lighttpd-1.4.20源代码

    每个模块都是一个单独的`.c`文件,如`mod_access.c`、`mod_rewrite.c`等,它们通过lighttpd的模块接口注册和执行各自的功能。 6. **内存管理** lighttpd在内存管理上注重效率和安全性,`lighttpd-1.4.20/src/...

    在 Ubuntu 15.04/CentOS 7 中安装 Lighttpd Web 服务器的方法

    如果需要额外的功能支持,如 SSL、mod_rewrite 等,还需要额外配置相应的模块。 #### 三、设置 Lighttpd **1. 修改配置文件** - 默认情况下,Lighttpd 的配置文件位于 `/etc/lighttpd/lighttpd.conf`。可以通过...

    lighttpd1.4.25代码

    1. **模块化设计**:lighttpd支持模块化的扩展,可以根据需求加载或卸载功能模块,例如FastCGI、SSI(服务器端包含)、mod_proxy等,这使得它在保持轻量级的同时,也具备了强大的功能。 2. **高效的事件模型**:...

    lighttpd简单配置

    - `/usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf` 4. **检查服务状态**: - 可以通过`lsof -i :80`命令来查看服务监听情况,确认服务是否成功启动。 5. **测试服务**: - 使用`curl`命令...

    lighttpd 安装配置

    cp /path/to/lighttpd-1.4.8/doc/lighttpd.conf /usr/local/lighttpd/conf/ ``` **启动服务** 通过以下命令启动Lighttpd服务,`-D`参数表示在前台运行,便于调试: ``` /sbin/lighttpd -f conf/lighttpd.conf -D ...

    lighttpd-1.4.20-cmake

    6. **配置lighttpd**:lighttpd的配置文件通常位于`/etc/lighttpd/lighttpd.conf`,需要根据实际需求进行定制,包括设置监听端口、虚拟主机、日志文件等。 7. **启动与管理lighttpd**:通过命令`sudo /etc/init.d/...

    lighttpd的权限认证模块 mod_auth

    auth.backend.htpasswd.userfile = "/etc/lighttpd/users.htpasswd" $HTTP["url"] =~ "^/protected_area/" { auth.require = ( "method" =&gt; "digest", "realm" =&gt; "Protected Area", "userfile" =&gt; "/etc/...

    fcgi-2.4.1-SNAP-0910052249.tar.bz2

    fcgitar -xjvf fcgi-2.4.1-SNAP-0910052249.tar.bz2cd fcgi-2.4.1-SNAP-0910052249./configuremakemake installvim /etc/lighttpd/lighttpd.conf 配置fastcgi模块vim /etc/lighttpd/conf-avaliable/10-fastcgi.conf...

    lighttpd-1.4.45_lighttpd服务器_

    在lighttpd-1.4.45中,支持如FastCGI、mod_proxy、mod_rewrite等常见模块,可以轻松集成PHP、Python等脚本语言,实现动态内容的处理。 安全性方面,lighttpd-1.4.45同样表现出色。它内置了防止DoS攻击的机制,比如...

    搭建lighttpd+cgi的代码包

    安装完成后,需要编辑lighttpd的配置文件,通常位于`/etc/lighttpd/lighttpd.conf`。找到`server.modules`部分,确保`"mod_cgi"`在其中。然后,设置`cgi.assign`,指定哪些扩展名的文件将通过CGI处理。例如,添加`...

    详细的linghttpd服务器搭建

    打开`/etc/rc.d/init.d/lighttpd`和`/etc/lighttpd/lighttpd.conf`。在`lighttpd.conf`中,你可以更改服务监听的端口(默认为80,这里改为81)和文档根目录: ```bash server.port = 81 server.document-root = "/...

    FreeBSD7.0编译安装nginx+php+mysql.pdf

    编辑`/usr/local/vhost/lighttpd/etc/lighttpd/lighttpd.conf`,然后启动Lighttpd服务,使用`/usr/local/vhost/lighttpd/sbin/lighttpd -f /usr/local/vhost/lighttpd/etc/lighttpd/lighttpd.conf`命令。 至此,你...

    lighttpd-1.4.59.tar.gz

    2. 启动服务:安装完成后,可以使用`sudo lighttpd -D -f /etc/lighttpd/lighttpd.conf`启动lighttpd服务器,其中-D参数表示在后台运行,-f指定配置文件路径。 3. 停止与重启:使用`sudo service lighttpd stop`...

    lighttpd源码分析

    例如,mod_accesslog模块负责日志记录,mod_rewrite模块实现URL重写,mod_fastcgi模块则提供对FastCGI应用的支持。每个模块都有自己的生命周期管理和函数接口,可以独立加载和卸载,增强了灵活性。 5. **内存管理**...

    lighttpd-1.4.49.tar.gz

    4. **配置文件**:lighttpd的配置文件通常为`/etc/lighttpd/lighttpd.conf`,在此文件中设置监听端口、服务器根目录、虚拟主机、路由规则等。 5. **启动服务**:执行`sudo lighttpd -D -f /etc/lighttpd/lighttpd....

Global site tag (gtag.js) - Google Analytics