Реализовать эквивалентную apache функциональность mod_rewrite в lighttpd

Вот файл mod_rewrite .htaccess, который предназначен для работы на серверах Apache для моего веб-приложения

RewriteEngine On
RewriteBase /cs200/tokens/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

Это некоторые важные параметры $ _SERVER, которые могут быть полезны.

$_SERVER["REQUEST_URI"]-    /cs200/tokens/
$_SERVER["DOCUMENT_ROOT"]-  /var/www/servers/www
$_SERVER["SCRIPT_FILENAME"]-    /var/www/servers/www/cs200/tokens/index.php
$_SERVER["PHP_SELF"] - /cs200/tokens/index.php

У меня есть lighttpd сервер, на котором я хочу реализовать ту же функциональность, что и этот файл .htaccess. Я сослался на множество источников в Интернете и нашел их. Но на самом деле ни один из них не работает. Скажем, мое доменное имя www.example.com. Я пробовал следующие примеры, и ни один из них не помогал

$HTTP["host"] =~ "www.example.com" {

url.rewrite-once = (
    "^/cs200/tokens(.*)" => "/index.php" 
)
}

пример 2

$HTTP["host"] =~ "www.example.com" {

url.rewrite-once = (
    "^/cs200/tokens/(.*)" => "/cs200/tokens/index.php" 
)
}

Ни один из них, похоже, не выполняет функции этого файла apache .htaccess на lighttpd. Эта проблема беспокоит меня последние 12 часов, и я как бы хочу отказаться от этой проблемы. Кто-нибудь может мне помочь?

PS моя версия сервера Lighttpd - 1.4.39

0
задан 9 February 2016 в 20:06
1 ответ

Хорошо, я все равно разобрался. Это для всех, кто случайно наткнется на эту проблему. mod_rewrite в lighttpd по умолчанию отключен в конфигурации и должен быть раскомментирован в lighttpd.conf в начале

server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_simple_vhost",
"mod_setenv",
    #"mod_rewrite", //remove the hash here

)

Также регулярное выражение для вышеуказанного условия, которое сработало для меня, это

url.rewrite-once = (
    "^/cs200/tokens(.*)" => "/cs200/tokens/index.php" 

Также это должно быть добавлено в

$ HTTP ["host"] = ~ "www.example.com"

0
ответ дан 24 November 2019 в 07:02

Теги

Похожие вопросы