Я пытаюсь использовать меньше, сокращатель URL-адресов Шона Инмана на моем сервере lighttpd, и он использует файл .htaccess для перенаправления. Я не очень хорошо разбираюсь в Mod_Rewrite - не в первую очередь, иначе было бы достаточно простого поиска в Google, чтобы преобразовать это для lighttpd. Как бы то ни было, я не знаю, что делают 2-я и 3-я строки Mod_Rewrite, поэтому я не могу конвертировать. Буду признателен за любой совет по ним, чтобы он работал так, как должен. Спасибо!
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?token=$1 [QSA,L]
</IfModule>
Эти две строки указывают модулю mod_rewrite Apache НЕ применять правило перезаписи к файлам (f) и каталогам (d), которые физически существуют в файловой системе:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
В течение долгого времени lighttpd не поддерживал это поведение из коробки, и вам приходилось использовать mod_magnet с lua-скриптом, как в этом примере:
Однако, похоже, сейчас поддержка есть:
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModRewrite#urlrewrite-repeat-if-not-file
Итак, просто используйте эту конструкцию перезаписи в своем lighttpd.conf, например:
url.rewrite-if-not-file = (
"^/(.*)$" => "/index.php?q=$1"
)
Надеюсь, что это помогает и удачи!