0

マルチビューをシミュレートしようとしていますが、try_files に問題があります。すべて問題ありませんが、/index.php に管理されていないすべての URL を書き換えたい (ただし、404 ではありません):

location ~ ^(/.+)/ {
   try_files $uri $uri/ $1.php?$args @extensionless-php /index.php;
}
location @extensionless-php {
   rewrite ^(.*)/ $1.php;
}

すべての URL は /index.php に書き換えられます。最初の場所の最後にある /index.php を削除すると、管理されていない URL (インデックスに書き換えたい) 以外はすべて問題ありません。何か案が?ありがとうございました

4

1 に答える 1

0

/index.phpあなたが言ったように、最初の場所から削除しようとするかもしれません。次に、php ファイルが見つからないときにリダイレクトするようにするには、リクエストを処理する/index.phpに数行追加します。location.php

location ~ \.php$ {
    if (!-f $request_filename) {
        rewrite    .*    /index.php;
    }
    # your other directives such as fastcgi_pass 127.0.0.1:9000; etc.
}
于 2014-06-29T12:42:15.360 に答える