我在获取特定子目录(不同于 webroot)的重写规则时遇到了一些问题,我不知道将它们放在哪里。
/var/www/(包含 WordPress 的 webroot) /var/www/subdirectory(包含需要它自己的重写规则的其他应用程序)
以下规则适用于位于 webroot 目录(/var/www 或http://mywebsite.com)中的 WordPress:
$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"
)
}
然后我有第二个应用程序,它位于 webroot 的子目录(/var/www/subdirectory 或http://mywebsite.com/subdirectory)中,具有以下规则:
url.rewrite = (
"(index.php|test.php|favicon.ico)" => "/$1",
"(css|files|img|js)/(.*)" => "/$1/$2",
"^([^\?]*)(\?(.+))?$" => "/index.php?url=$1&$3",
)
我需要的是上面的第一组重写规则适用于除上面#Excluded 规则中的其他目录(以及/subdirectory)之外的所有内容,然后第二组规则仅适用于/subdirectory
我从网上某处的博客中获得了第一组 WordPress 规则,任何可能都不完全是我所需要的(关于匹配“mywebsite.com”,可能会被简化)。
我已经用谷歌搜索了自己尝试多种变体(主要是在黑暗中由稍微相关的随机论坛帖子引导),但我就是无法理解它。
那么,在维护根目录的 Wordpress 规则的同时,我将如何将第二组规则应用于子目录?
注意:我无法访问子域(这太容易了)。