将所有不以 example.com/wiki 开头的 example.com/path 重定向到 example.com/wiki - NginX 代理

将所有不以 example.com/wiki 开头的 example.com/path 重定向到 example.com/wiki - NginX 代理

我最近将网站从 Wordpress 移至 Confluence,但在页面重定向方面遇到了问题。我已经为我的 Confluence 设置了一个自定义 404 页面,但只有在您键入时它才有效

https://www.freesoftwareservers.com/asdasdas

但如果您转到旧链接,例如

https://www.freesoftwareservers.com/index.php/2015/09/03/install-dd-wrt-on-linksys-ea6500/

它会将您带到我的“融合”页面,但这/wiki是一个特殊的插件,我希望成为面向公众的一面。我通过不同的子域访问该页面,然后是 www.

我的“解决方法”是两件事之一,

1)全部重定向https://www.freesoftwareservers.com/index.php/*https://www.freesoftwareservers.com/wiki

2)全部重定向https://www.freesoftwareservers.com/(Anything BUT /wiki)https://www.freesoftwareservers.com/wiki

我在 NginX 网站上找到了一些接近的东西,但它比我需要的更复杂,而且我在所需的表达方面遇到了麻烦。

https://www.nginx.com/blog/creating-nginx-rewrite-rules/

以下是使用 rewrite 指令的 NGINX 重写规则示例。它匹配以字符串 /download 开头,然后在路径后面的某个位置包含 /media/ 或 /audio/ 目录的 URL。它将这些元素替换为 /mp3/ 并添加适当的文件扩展名 .mp3 或 .ra。 $1 和 $2 变量捕获未更改的路径元素。例如,/download/cdn-west/media/file1 变为 /download/cdn-west/mp3/file1.mp3。

server {
    ...
    rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;
    rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra  last;
    return  403;
    ...
}

也许我需要将其分成两部分,一个返回 404 的服务器块和一个 404 处理程序,但我想将这一切保留在我现有的 nginx 服务器块中。

顺便说一句,我已经使用以下重写规则将domain.com/重定向到domain.com/wiki,但只有在您键入时才有效https://www.freesoftwareservers.com最后没有任何东西。

rewrite     ^/$ /wiki permanent;

感谢任何帮助,互联网上有许多指向我的网站的损坏链接:)

答案1

好吧,当我发布赏金后,我在为我的问题编写更好的描述时就弄清楚了......

rewrite ^/index.php /wiki permanent;

相关内容