0

我想将一些在 apache 上运行的站点迁移到 Lighttpd。

谁能帮我将此重写规则转换为 Lighttpd 的等效规则:

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

我正在阅读 Lighttpd 重写说明(http://redmine.lighttpd.net/wiki/1/Docs:ModRewrite),但我不明白如何转换此特定规则。

非常感谢

4

1 回答 1

1

您列出的 Apache 规则使用 RewriteCond 来接受任何不去 direcotyr (!-d) 也不去文件 (!-f) 的请求,并将其重定向以将 URL 数据传递到索引中。 php 作为参数“url”。它确保保留任何其他 CGI 参数 (QSA),并且如果此规则匹配 (L),则不再匹配其他规则。

所以http://yourserver.org/something-silly会去http://yourserver.org/index.ph?url=something-silly并且http://yourserver.org/something-silly?q=search+terms会去http://yourserver.org/index.ph?url=something-silly&q=search-terms

Lighttpd 有 url.rewrite-if-not-file部分实现了这一点,但如果它是一个目录,它将重写 URL。因此,您必须添加规则以明确不重写转到已知有效目录的 URL。

于 2009-12-11T07:40:03.857 回答