ฉันกำลังทำงานกับแอป PHP และฉันได้ย้ายจาก apache ไปยังเซิร์ฟเวอร์ nginx ฉันมีหน้า php ที่สร้างไฟล์ xml แบบไดนามิกสำหรับแผนผังเว็บไซต์ สิ่งนี้ทำงานได้อย่างสมบูรณ์ในเซิร์ฟเวอร์ apache แต่เมื่อฉันย้ายไปที่ nginx มันไม่ทำงาน
นี่คือรหัสที่ฉันใช้ใน apache
RewriteRule ^([^/]+)\.xml/?$ sitemap.php?p=$1 [QSA,L]
นี่คือรหัสที่ฉันใช้ใน nginx
เขียนใหม่ "^/([^/]+)\.xml/?$" /sitemap.php?p=$1 ล่าสุด;
นี่คือความสมบูรณ์ ไฟล์ปรับแต่ง nginx.
นี่คือสิ่งที่ฉันใช้เพื่อสร้างหน้า xml แบบไดนามิก (ไม่รวมรหัสที่สมบูรณ์)
<?php
require_once( './inc/header.inc.php' );
$connect = mysqli_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PASS, DATABASE_NAME);
mysqli_set_charset($connect, "utf8");
header("Content-Type: application/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
// How many items to list per page
$limit = 10000;
if (!empty($_GET["p"])) {
$page = $_GET["p"];
if ($page === "sitemap_core") {
// Sitemap Core Page Starts
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'.PHP_EOL;
$core_sitemap_url_arr = array('terms', 'join', 'login', 'blog/', 'about-us', 'sb', 'sm', 'msb');
foreach ($core_sitemap_url_arr as $url) {
echo '<url>'.PHP_EOL;
echo '<loc>'.BX_DOL_URL_ROOT.$url.'</loc>'.PHP_EOL;
echo '<lastmod>'.date('Y-m-d').'</lastmod>'.PHP_EOL;
echo '<changefreq>daily</changefreq>'.PHP_EOL;
echo '</url>'.PHP_EOL;
}
echo '</urlset>'.PHP_EOL;
// Sitemap Core Page Ends
}
}
else {
header("Location:" .BX_DOL_URL_ROOT."404");
}
?>