example.com/wikiで始まらないすべてのexample.com/pathをexample.com/wikiにリダイレクトする - NginXプロキシ

example.com/wikiで始まらないすべてのexample.com/pathをexample.com/wikiにリダイレクトする - NginXプロキシ

最近、WebサイトをWordPressからConfluenceに移動しましたが、ページリダイレクトに問題があります。私のConfluenceにカスタム404ページを設定しましたが、入力したときにのみ機能します。

https://www.freesoftwareservers.com/asdasdas

しかし、次の古いリンクに移動すると

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

私のFusionページに移動しますが、これは/wiki私が一般に公開したい特別なプラグインです。別のサブドメインを介してページにアクセスし、www。

私の「解決方法」は2つのうちの1つです。

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ハンドラの2つの部分に分割する必要があるかもしれませんが、これらすべてを既存のnginxサーバーブロックに保持したいと思います。

ところで、私はdomain.com/をdomain.com/wikiにリダイレクトするために次の書き換え規則を使用しましたが、入力したときにのみ機能します。https://www.freesoftwareservers.com結局何もありません。

rewrite     ^/$ /wiki permanent;

助けてくれてありがとう。インターネットに私のサイトリンクが壊れていることが多いです:)

ベストアンサー1

まあ、賞金を投稿した後、私の問題のより良い説明を書いている間にそれを見つけました...

rewrite ^/index.php /wiki permanent;

おすすめ記事