如何在lighttpd中启用mod重写

时间:2010-05-07 06:56:57

标签: php mod-rewrite lighttpd

我需要在lighttpd中启用mod_rewrite 它不应该显示index.php扩展名....

2 个答案:

答案 0 :(得分:5)

如果我理解你的问题,你需要重写/索引到/index.php。这应该可以解决问题。

server.modules += ("mod_rewrite")
url.rewrite-once = ( 
    "^(.*)$" => "$1.php"
);

注意,这也会转发网址,例如/image.jpg - > /image.jpg.php。如果您需要更复杂的解决方案,请调整您的问题。

答案 1 :(得分:1)

我相信他们可能一直在寻找如何重写例如:/index.php/class/function to / class / function,例如在Wordpress和PHP MVC框架中使用。

这很容易做到。使用文本编辑器打开/etc/lighttpd/lighttpd.conf并通过取消注释来启用重写模块(删除#)。它看起来像这样:

server.modules = (
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_redirect",
    "mod_rewrite",

然后,您只需将重写正则表达式添加到同一文件中。在删除index.php的情况下,这就是我使用的:

url.rewrite-if-not-file = ("^/[^?]*(\?.*)?$" => "/index.php$1")

保存并退出,然后重新启动lighttpd。在Debian中你会做:sudo service lighttpd restart&& sudo service lighttpd status

我总是运行第二个命令(在&&之后)来检查服务状态并确保没有启动错误。在那之后,你应该好好去!