在subirectory不同lighttpd的重写规则(Different lighttpd rew

2019-06-28 09:07发布

我有收到特定subdirectroy重写规则(从根目录不同)的几个问题,我不知所措的地方把他们。

在/ var / WWW /(Webroot公司含WordPress的)在/ var / WWW /子目录(含其他应用程序,它需要它自己的重写规则)

以下规则我为WordPress这是在根目录DIR(在/ var / www或http://mywebsite.com ):

$HTTP["host"] =~ "mywebsite.com" {
  url.rewrite-final = (

    # Exclude some directories from rewriting
    "^/(wp-admin|wp-includes|wp-content|gallery2)/(.*)" => "$0",

    # Exclude .php files at root from rewriting
    "^/(.*.php)" => "$0",

    # Handle permalinks and feeds
    "^/(.*)$" => "/index.php/$1"
  )
}

然后,我有,在根目录(/无功/网络/子目录,或的子目录坐在一个第二应用http://mywebsite.com/subdirectory )用下面的规则:

url.rewrite = (
    "(index.php|test.php|favicon.ico)" => "/$1",
    "(css|files|img|js)/(.*)" => "/$1/$2",
    "^([^\?]*)(\?(.+))?$" => "/index.php?url=$1&$3",
)

我需要的是为第1组的重写规则上面适用于一切,除了上面的#Excluded规则的其他目录(以及/子目录),那么第二组仅应用于/子目录规则

我得到的第一套从博客WordPress的规则,某个地方的任何可能是不是我所需要的东西(在问候匹配“mywebsite.com”,并很可能被简化)。

我GOOGLE了自己离开尝试多种变化(大多只是通过一些稍微随机相关的论坛帖子引导暗刺),但我不能换我的头一轮吧。

所以,我怎么会去有同时维持根WordPress的规则应用到子目录中的第2组的规则?

注:我有子域无权访问(这将是太容易了)。

Answer 1:

我不太清楚你想表达什么 - 我会解释你当前的规则做什么。

不使用此,用户重写一次,而不是

url.rewrite = (

你把地图的任何的index.php和test.php的(甚至FOO-test.php的)回Web根目录

"(index.php|test.php|favicon.ico)" => "/$1",

你重写任何文件夹或文件包含CSS,文件,tmp或JS在它的URL回到Web根目录

"(css|files|img|js)/(.*)" => "/$1/$2",

现在这个比赛在你的根目录任何东西(没有子目录!),并保持get请求

"^([^\?]*)(\?(.+))?$" => "/index.php?url=$1&$3",
)

更新这应该这样做(未经测试)

url.rewrite-once = (
"^/subdir/(?:index.php|test.php|favicon.ico)" => "$0",
"^/subdir/(?:.+/)?(css|files|img|js)/(.*)" => "/subdir/$1/$2", #update #2
"^/subdir/(?:/(?:.+/))?([^\?]*)(?:\?(.+))?$" => "/subdir/index.php?url=$1&$2",

"^/(wp-admin|wp-includes|wp-content|gallery2)/(.*)" => "$0",
"^/(.*.php)" => "$0",
"^/(.*)$" => "/index.php/$1"
)


文章来源: Different lighttpd rewrite rules in subirectory