2016-02-09 80 views
0

下面是其目的是要在Apache服務器的工作爲我的web應用程序在lighttpd的實施阿帕奇相當於mod_rewrite功能。

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

這些都是可能是有用的一些相關的$ _ SERVER參數mod_rewrite的.htaccess文件。

$_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 

我有,我想實現這個.htaccess文件的相同功能的lighttpd的服務器。 我已經在網上提到了很多來源,並提出了這些。但他們中沒有一個真正起作用。 假設我的域名是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" 
) 
} 

這些都不似乎在做對的lighttpd這個apache的.htaccess文件的功能。這個問題在過去的12個小時裏一直困擾着我,我有點想放棄這個問題。 任何人都可以幫我嗎?

P.S我Lighttpd的服務器版本是1.4.39

回答

0

好了,所以我想通了,反正。這適用於偶然遇到此問題的任何人。 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 [ 「宿主」] =〜 「www.example.com」 被添加