我需要在lighttpd中启用mod_rewrite 它不应该显示index.php扩展名....
答案 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
我总是运行第二个命令(在&&之后)来检查服务状态并确保没有启动错误。在那之后,你应该好好去!