Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:PHP 2.0 için OSS SDK kullanarak statik web sitesi barındırma

Son Güncelleme:Oct 02, 2026

Object Storage Service (OSS), paketlerinizde statik web siteleri barındırmanıza ve yansıtma tabanlı kaynak sunucuya yönlendirme kurallarını yapılandırmanıza olanak tanır. Statik web sitesi barındırma etkinleştirildiğinde, paketi ziyaret eden kullanıcılar otomatik olarak belirtilen varsayılan ana sayfaya veya varsayılan 404 sayfasına yönlendirilir. Yansıtma tabanlı kaynak sunucuya yönlendirme kuralları, verilerin OSS'ye sorunsuz geçişini sağlar.

Kullanım notları

  • Bu konudaki örnek kod, China (Hangzhou) bölgesinin bölge kimliği olan cn-hangzhou değerini kullanır. Bir paketteki kaynaklara erişmek için varsayılan olarak genel uç nokta kullanılır. Paketle aynı bölgede bulunan diğer Alibaba Cloud hizmetlerini kullanarak paketteki kaynaklara erişmek istiyorsanız dahili uç noktayı kullanın. OSS bölgeleri ve uç noktaları hakkında daha fazla bilgi için bkz. Bölgeler ve uç noktalar.

  • Statik web sitesi barındırmayı veya yansıtma tabanlı kaynak sunucuya yönlendirmeyi yapılandırmak için oss:PutBucketWebsite iznine sahip olmanız gerekir. Statik web sitesi barındırma yapılandırmalarını veya yansıtma tabanlı kaynak sunucuya yönlendirme kurallarını sorgulamak için oss:GetBucketWebsite iznine sahip olmanız gerekir. Statik web sitesi barındırma yapılandırmalarını veya yansıtma tabanlı kaynak sunucuya yönlendirme kurallarını silmek için oss:DeleteBucketWebsite iznine sahip olmanız gerekir. Daha fazla bilgi için bkz. Özel bir ilke atayın.

Statik web sitesi barındırmayı yönetin

Statik web siteleri, JavaScript gibi istemci tarafı betikleri dahil olmak üzere yalnızca statik içerikten oluşur. Bir OSS paketinde statik bir web sitesi barındırabilir ve buna paketin alan adı üzerinden erişebilirsiniz.

Statik web sitesi barındırmayı yapılandırın

Aşağıdaki örnek kod, statik web sitesi barındırmanın nasıl yapılandırılacağını gösterir:

<?php

// Introduce autoload files to load dependent libraries.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Specify descriptions for command line parameters.
$optsdesc = [
    "region" => ['help' => The region in which the bucket is located.', 'required' => True], // (Required) Specify the region in which the bucket is located.
    "endpoint" => ['help' => The domain names that other services can use to access OSS.', 'required' => False], // (Optional) Specify the endpoint that can be used by other services to access OSS.
    "bucket" => ['help' => The name of the bucket, 'required' => True], // (Required) Specify the name of the bucket.
];

// Generate a long options list to parse the command line parameters.
$longopts = \array_map(function ($key) {
    return "$key:"; // Add a colon (:) to the end of each parameter to indicate that a value is required.
}, array_keys($optsdesc));

// Parse the command line parameters.
$options = getopt("", $longopts); 

// Check whether the required parameters are configured.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: the following arguments are required: --$key, $help"; // Indicate that the required parameters are not configured.
        exit(1); 
    }
}

// Obtain the values of the command line parameters.
$region = $options["region"]; // The region in which the bucket is located.
$bucket = $options["bucket"]; // The name of the bucket.

// Use environment variables to load the AccessKey ID and AccessKey secret.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Use the default configurations of the SDK.
$cfg = Oss\Config::loadDefault();

// Specify the credential provider.
$cfg->setCredentialsProvider($credentialsProvider);

// Specify the region.
$cfg->setRegion($region);

// Specify the endpoint if an endpoint is provided.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Create an OSSClient instance.
$client = new Oss\Client($cfg);

// Create a PutBucketWebsiteRequest object to configure static website hosting for the bucket.
$request = new Oss\Models\PutBucketWebsiteRequest(bucket: $bucket,
    websiteConfiguration: new Oss\Models\WebsiteConfiguration(
        indexDocument: new Oss\Models\IndexDocument(
            suffix: 'index.html', // Specify the name of the file that is used as the default homepage.
            supportSubDir: true, // Enable the subdirectory homepage feature for the bucket.
            type: 0 // The type of the index page.
        ),
        errorDocument: new Oss\Models\ErrorDocument(
            key: 'error.html', // The name of the file that is used as the default 404 page.
            httpStatus: 404 // The HTTP status code returned on the default 404 page.
        )
    )
);

// Use the putBucketWebsite method to configure static website hosting for the bucket.
$result = $client->putBucketWebsite($request);

// Display the returned result.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // The returned HTTP status code.
    'request id:' . $result->requestId // The request ID of the request, which is the unique identifier of the request.
);

Bir paketin statik web sitesi barındırma yapılandırmalarını sorgulayın

Aşağıdaki örnek kod, bir paketin statik web sitesi barındırma yapılandırmalarının nasıl sorgulanacağını gösterir:

<?php

// Introduce autoload files to load dependent libraries.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Specify descriptions for command line parameters.
$optsdesc = [
    "region" => ['help' => The region in which the bucket is located.', 'required' => True], // (Required) Specify the region in which the bucket is located.
    "endpoint" => ['help' => The domain names that other services can use to access OSS.', 'required' => False], // (Optional) Specify the endpoint that can be used by other services to access OSS.
    "bucket" => ['help' => The name of the bucket, 'required' => True], // (Required) Specify the name of the bucket.
];

// Generate a long options list to parse the command line parameters.
$longopts = \array_map(function ($key) {
    return "$key:"; // Add a colon (:) to the end of each parameter to indicate that a value is required.
}, array_keys($optsdesc));

// Parse the command line parameters.
$options = getopt("", $longopts); 

// Check whether the required parameters are configured.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: the following arguments are required: --$key, $help"; // Indicate that the required parameters are not configured.
        exit(1); 
    }
}

// Obtain the values of the command line parameters.
$region = $options["region"]; // The region in which the bucket is located.
$bucket = $options["bucket"]; // The name of the bucket.

// Use environment variables to load the AccessKey ID and AccessKey secret.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Use the default configurations of the SDK.
$cfg = Oss\Config::loadDefault();

// Specify the credential provider.
$cfg->setCredentialsProvider($credentialsProvider);

// Specify the region.
$cfg->setRegion($region);

// Specify the endpoint if an endpoint is provided.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Create an OSSClient instance.
$client = new Oss\Client($cfg);

// Create a GetBucketWebsiteRequest object to query the static website hosting configurations of the bucket.
$request = new Oss\Models\GetBucketWebsiteRequest(bucket: $bucket);

// Use the getBucketWebsite method to query the static website hosting configurations of the bucket.
$result = $client->getBucketWebsite($request);

// Display the returned result.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // The returned HTTP status code.
    'request id:' . $result->requestId . PHP_EOL . // The request ID of the request, which is the unique identifier of the request.
    'website config:' . var_export($result->websiteConfiguration, true) . PHP_EOL // The static website hosting configurations.
);

Bir paketin statik web sitesi barındırma yapılandırmalarını silin

Aşağıdaki örnek kod, bir paketin statik web sitesi barındırma yapılandırmalarının nasıl silineceğini gösterir:

<?php

// Introduce autoload files to load dependent libraries.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Specify descriptions for command line parameters.
$optsdesc = [
    "region" => ['help' => The region in which the bucket is located.', 'required' => True], // (Required) Specify the region in which the bucket is located.
    "endpoint" => ['help' => The domain names that other services can use to access OSS.', 'required' => False], // (Optional) Specify the endpoint that can be used by other services to access OSS.
    "bucket" => ['help' => The name of the bucket, 'required' => True], // (Required) Specify the name of the bucket.
];

// Generate a long options list to parse the command line parameters.
$longopts = \array_map(function ($key) {
    return "$key:"; // Add a colon (:) to the end of each parameter to indicate that a value is required.
}, array_keys($optsdesc));

// Parse the command line parameters.
$options = getopt("", $longopts); 

// Check whether the required parameters are configured.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: the following arguments are required: --$key, $help"; // Indicate that the required parameters are not configured.
        exit(1); 
    }
}

// Obtain the values of the command line parameters.
$region = $options["region"]; // The region in which the bucket is located.
$bucket = $options["bucket"]; // The name of the bucket.

// Use environment variables to load the AccessKey ID and AccessKey secret.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Use the default configurations of the SDK.
$cfg = Oss\Config::loadDefault();

// Specify the credential provider.
$cfg->setCredentialsProvider($credentialsProvider);

// Specify the region.
$cfg->setRegion($region);

// Specify the endpoint if an endpoint is provided.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Create an OSSClient instance.
$client = new Oss\Client($cfg);

// Create a DeleteBucketWebsiteRequest object to delete the static website hosting configurations of the bucket.
$request = new Oss\Models\DeleteBucketWebsiteRequest(bucket: $bucket);

// Use the deleteBucketWebsite method to delete the static website hosting configurations of the bucket.
$result = $client->deleteBucketWebsite($request);

// Display the returned result.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // The returned HTTP status code.
    'request id:' . $result->requestId // The request ID of the request, which is the unique identifier of the request.
);

Yansıtma tabanlı kaynak sunucuya yönlendirmeyi yönetin

Yansıtma tabanlı kaynak sunucuya yönlendirme, hizmet kesintisi olmadan verilerin kendi yönettiğiniz bir kaynak sunucudan veya başka bir cloud hizmetinden OSS'ye sorunsuz geçişini sağlar. Geçiş sırasında, henüz OSS'ye geçirilmemiş tüm veriler kaynak sunucudan şeffaf bir şekilde alınarak iş sürekliliği sağlanır.

Bir paket için yansıtma tabanlı kaynak sunucuya yönlendirme kurallarını yapılandırın

Bir istekçi, belirtilen pakette bulunmayan bir nesneye erişirse, nesneyi kaynak sunucudan almak için kaynak sunucudaki nesnenin URL'sini ve kaynak sunucuya yönlendirme koşullarını belirtebilirsiniz. Örneğin, China (Hangzhou) bölgesinde examplebucket adlı bir paket varsa ve bir istekçi, paketin kök dizinindeki examplefolder dizininde bulunmayan bir nesneye erişmeye çalışırsa, istekçi kaynak sunucunun examplefolder dizininde depolanan nesneye erişmek üzere www.example.com adresine yönlendirilir.

Aşağıdaki örnek kod, bu senaryoda yansıtma tabanlı kaynak sunucuya yönlendirme kurallarının nasıl yapılandırılacağını gösterir:

<?php

// Introduce autoload files to load dependent libraries.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Specify descriptions for command line parameters.
$optsdesc = [
    "region" => ['help' => The region in which the bucket is located.', 'required' => True], // (Required) Specify the region in which the bucket is located.
    "endpoint" => ['help' => The domain names that other services can use to access OSS.', 'required' => False], // (Optional) Specify the endpoint that can be used by other services to access OSS.
    "bucket" => ['help' => The name of the bucket, 'required' => True], // (Required) Specify the name of the bucket.
];

// Generate a long options list to parse the command line parameters.
$longopts = \array_map(function ($key) {
    return "$key:"; // Add a colon (:) to the end of each parameter to indicate that a value is required.
}, array_keys($optsdesc));

// Parse the command line parameters.
$options = getopt("", $longopts); 

// Check whether the required parameters are configured.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: the following arguments are required: --$key, $help"; // Indicate that the required parameters are not configured.
        exit(1); 
    }
}

// Obtain the values of the command line parameters.
$region = $options["region"]; // The region in which the bucket is located.
$bucket = $options["bucket"]; // The name of the bucket.

// Use environment variables to load the AccessKey ID and AccessKey secret.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Use the default configurations of the SDK.
$cfg = Oss\Config::loadDefault();

// Specify the credential provider.
$cfg->setCredentialsProvider($credentialsProvider);

// Specify the region.
$cfg->setRegion($region);

// Specify the endpoint if an endpoint is provided.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Create an OSSClient instance.
$client = new Oss\Client($cfg);

// Specify mirroring-based back-to-origin rules.
$ruleOk = new Oss\Models\RoutingRule(
    ruleNumber: 1, // The rule number.
    condition: new Oss\Models\RoutingRuleCondition(
        keyPrefixEquals: 'myobject', // Specify the prefix contained in the names of the objects that you want to retrieve.
        httpErrorCodeReturnedEquals: 404 // Set the back-to-origin condition to HTTP status code 404.
    ),
    redirect: new Oss\Models\RoutingRuleRedirect(
        redirectType: 'Mirror', // Set the redirection type to Mirror.
        mirrorURL: 'http://www.test.com/', // Specify the origin URL.
        mirrorHeaders: new Oss\Models\MirrorHeaders(
            passAll: false, // Specify whether to transmit all HTTP headers.
            passs: ['myheader-key1', 'myheader-key2'], // Specify the HTTP headers that can be transmitted.
            removes: ['myheader-key3', 'myheader-key4'], // Specify the HTTP headers that cannot be transmitted.
            sets: [
                new Oss\Models\MirrorHeadersSet(
                    key: 'myheader-key5', // Specify the names of the specified HTTP headers.
                    value: 'myheader-value' // Specify the values of the specified HTTP headers.
                ),
            ]
        )
    )
);

// Create a PutBucketWebsite request.
$request = new Oss\Models\PutBucketWebsiteRequest(
    bucket: $bucketName, // The name of the bucket.
    websiteConfiguration: new Oss\Models\WebsiteConfiguration(
        indexDocument: new Oss\Models\IndexDocument(
            suffix: 'index.html', // The default homepage for the mirroring-based back-to-origin request.
            supportSubDir: true,
            type: 0
        ),
        errorDocument: new Oss\Models\ErrorDocument(
            key: 'error.html', // The default 404 page for the mirroring-based back-to-origin request.
            httpStatus: 404
        ),
        routingRules: new Oss\Models\RoutingRules(
            routingRules: [$ruleOk] // The mirroring-based back-to-origin rules.
        )
    )
);

// Execute the PutBucketWebsite request.
$result = $client->putBucketWebsite($request);

// Display the returned result.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // The returned HTTP status code.
    'request id:' . $result->requestId . PHP_EOL . // The request ID of the request, which is the unique identifier of the request.
    'website config:' . var_export($result->websiteConfiguration, true) . PHP_EOL // The static website hosting configurations.
);

Bir paketin yansıtma tabanlı kaynak sunucuya yönlendirme kurallarını sorgulayın

Aşağıdaki örnek kod, bir paketin yansıtma tabanlı kaynak sunucuya yönlendirme kurallarının nasıl sorgulanacağını gösterir:

<?php

// Introduce autoload files to load dependent libraries.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Specify descriptions for command line parameters.
$optsdesc = [
    "region" => ['help' => The region in which the bucket is located.', 'required' => True], // (Required) Specify the region in which the bucket is located.
    "endpoint" => ['help' => The domain names that other services can use to access OSS.', 'required' => False], // (Optional) Specify the endpoint that can be used by other services to access OSS.
    "bucket" => ['help' => The name of the bucket, 'required' => True], // (Required) Specify the name of the bucket.
];

// Generate a long options list to parse the command line parameters.
$longopts = \array_map(function ($key) {
    return "$key:"; // Add a colon (:) to the end of each parameter to indicate that a value is required.
}, array_keys($optsdesc));

// Parse the command line parameters.
$options = getopt("", $longopts); 

// Check whether the required parameters are configured.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: the following arguments are required: --$key, $help"; // Indicate that the required parameters are not configured.
        exit(1); 
    }
}

// Obtain the values of the command line parameters.
$region = $options["region"]; // The region in which the bucket is located.
$bucket = $options["bucket"]; // The name of the bucket.

// Use environment variables to load the AccessKey ID and AccessKey secret.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Use the default configurations of the SDK.
$cfg = Oss\Config::loadDefault();

// Specify the credential provider.
$cfg->setCredentialsProvider($credentialsProvider);

// Specify the region.
$cfg->setRegion($region);

// Specify the endpoint if an endpoint is provided.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Create an OSSClient instance.
$client = new Oss\Client($cfg);

// Create a GetBucketWebsite request.
$request = new Oss\Models\GetBucketWebsiteRequest(
    bucket: $bucketName, // The name of the bucket.
);

// Execute the GetBucketWebsite request.
$result = $client->getBucketWebsite($request);

// Display the returned result.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // The returned HTTP status code.
    'request id:' . $result->requestId . PHP_EOL . // The request ID of the request, which is the unique identifier of the request.
    'website config:' . var_export($result->websiteConfiguration, true) . PHP_EOL // The static website hosting configurations.
);

Bir paketin yansıtma tabanlı kaynak sunucuya yönlendirme kurallarını silin

Aşağıdaki örnek kod, bir paketin yansıtma tabanlı kaynak sunucuya yönlendirme kurallarının nasıl silineceğini gösterir:

<?php

// Introduce autoload files to load dependent libraries.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Specify descriptions for command line parameters.
$optsdesc = [
    "region" => ['help' => The region in which the bucket is located.', 'required' => True], // (Required) Specify the region in which the bucket is located.
    "endpoint" => ['help' => The domain names that other services can use to access OSS.', 'required' => False], // (Optional) Specify the endpoint that can be used by other services to access OSS.
    "bucket" => ['help' => The name of the bucket, 'required' => True], // (Required) Specify the name of the bucket.
];

// Generate a long options list to parse the command line parameters.
$longopts = \array_map(function ($key) {
    return "$key:"; // Add a colon (:) to the end of each parameter to indicate that a value is required.
}, array_keys($optsdesc));

// Parse the command line parameters.
$options = getopt("", $longopts); 

// Check whether the required parameters are configured.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: the following arguments are required: --$key, $help"; // Indicate that the required parameters are not configured.
        exit(1); 
    }
}

// Obtain the values of the command line parameters.
$region = $options["region"]; // The region in which the bucket is located.
$bucket = $options["bucket"]; // The name of the bucket.

// Use environment variables to load the AccessKey ID and AccessKey secret.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Use the default configurations of the SDK.
$cfg = Oss\Config::loadDefault();

// Specify the credential provider.
$cfg->setCredentialsProvider($credentialsProvider);

// Specify the region.
$cfg->setRegion($region);

// Specify the endpoint if an endpoint is provided.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Create an OSSClient instance.
$client = new Oss\Client($cfg);

// Create a DeleteBucketWebsite request.
$request = new Oss\Models\DeleteBucketWebsiteRequest(
    bucket: $bucketName, // The name of the bucket.
);

// Use the deleteBucketWebsite method to delete the static website hosting configurations of the bucket.
$result = $client->deleteBucketWebsite($request);

// Display the returned result.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // The returned HTTP status code.
    'request id:' . $result->requestId // The request ID of the request, which is the unique identifier of the request.
);

İlgili bilgiler

  • Statik web sitesi barındırmayı ve yansıtma tabanlı kaynak sunucuya yönlendirmeyi yönetmeye ilişkin tam örnek kodlar için put_bucket_website, get_bucket_website ve delete_bucket_website adreslerini ziyaret edin.

  • Statik web sitesi barındırmayı veya yansıtma tabanlı kaynak sunucuya yönlendirmeyi yapılandırmak için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. PutBucketWebsite.

  • Statik web sitesi barındırma yapılandırmalarını veya yansıtma tabanlı kaynak sunucuya yönlendirme kurallarını sorgulamak için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. GetBucketWebsite.

  • Statik web sitesi barındırma yapılandırmalarını veya yansıtma tabanlı kaynak sunucuya yönlendirme kurallarını silmek için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. DeleteBucketWebsite.