ホームページ >バックエンド開発 >PHPチュートリアル >CORS 構成: .htaccess と PHP - どちらのアプローチが最適ですか?

CORS 構成: .htaccess と PHP - どちらのアプローチが最適ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 18:39:29759ブラウズ

CORS Configuration: .htaccess vs. PHP - Which Approach is Right for You?

.htaccess の CORS 構成: 明確化と代替アプローチ

RESTful Web サービスで CORS アクセスを有効にするには、.htaccess を使用して CORS アクセスを構成します。一般的なアプローチ。ただし、課題が発生した場合、または別の解決策を希望する場合は、この記事で両方のオプションを検討します。

1. .htaccess 構成 (拡張機能あり):

.htaccess で CORS を正常に構成するには、基本的な Access-Control-Allow-Origin ヘッダーに加えて次の要素が含まれていることを確認してください:

Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

この行は、CORS リクエストに許可される HTTP メソッドを指定します。

2. PHP でのサーバー側の構成:

PHP で CORS ヘッダーを設定したい場合 (Slim などの PHP フレームワークを使用していると仮定して)、index.php スクリプトで行う方法は次のとおりです。 :

// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
    // Do additional checks to restrict origins as needed
    header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Max-Age: 86400');    // Cache for 1 day
}

// Handling OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
        header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
        header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
}

Slim ユーザーの場合は、HTTP 200 応答で OPTIONS リクエストを処理するために次のルートを追加します:

$app->map('/:x+', function($x) {
    http_response_code(200);
})->via('OPTIONS');

これらのアプローチにより、CORS の問題が解決されるはずです。特定のアプリケーションのニーズに合わせて設定を調整してください。

以上がCORS 構成: .htaccess と PHP - どちらのアプローチが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。