nginx 重写所有帖子但不重写 css 或 js

nginx 重写所有帖子但不重写 css 或 js

我有一个 WordPress 博客,我想将所有请求重定向到某个特定的帖子/页面,不包括 js、css(和图像)。

因此 example.com/some-post/ 必须(临时)重定向到 exmaple.com/catch-all/

我正在尝试这个,但似乎不太管用(我不确定是否需要使用 $uri):

if ($uri !~ \.css$) {
        set $redi C;
}

if ($uri !~ \.js$) {
        set $redi "($redi)J";
}

if ($uri !~ /catch-all/$) {
        set $redi "($redi)P";
}

if ($redi = CJP) {
        rewrite ^(.*)$ https://example.com/catch-all/ last;
        return 302;
}

答案1

使用空location块来避免某些请求的重定向:

location ~ \.css$ {}
location ~ \.js$ {}
location /catch-all/ {}
location / {
    rewrite ^(.*)$ /catch-all/ redirect;
}

相关内容