Hì sorry,dạo này mình hỏi mã hơi nhiều.Mình có đoạn htacess,xin được giúp đỡ ạ Code: 1.RewriteRule . /public_html/index.html [L] 2.RewriteRule ^sitemap.xml/?$ /public_html/sitemap.xml Dòng một sitemap tất cả url được chuyển hướng đến index.html=>nên dòng 2 của mình không hoạt động được. Làm cách nào để em để dòng 1 chuyển tất cả đến index.html trừ những url có .xml không mọi người
Bữa trước bạn hỏi cách tạo sitemap cho WP mà không dùng plugin? Bạn chuyển vị trí 2 dòng đó. Còn theo mình, thì không cần rewrite mà dùng code để tạo sitemap và cache lại thành .xml cho nhẹ. Nếu muốn cập nhật thì request lại! Bên dưới là đoạn code mình đã dùng cũng khá lâu. Bạn đọc để tùy chỉnh lại, không dám giải thích Nếu db nhiều quá thì tùy chỉnh lại để phân nhiều sitemap! PHP: <?phpif ((file_exists('sitemap.xml')) && (!isset($_GET['refresh']))){ header('Content-type: text/xml; charset=utf-8'); echo @file_get_contents('sitemap.xml'); exit();}@date_default_timezone_set('Asia/Bangkok');/** * include WP */define('WP_USE_THEMES', false);require_once ('wp-blog-header.php');// index$base_url = get_option('siteurl');$xml = sprintf('<url><loc>%s</loc><priority>1.00</priority></url>', $base_url);/** * posts */$posts = wp_get_recent_posts(array( 'numberposts' => 100, 'offset' => 0, 'orderby' => 'post_date', 'order' => 'DESC', 'post_type' => 'post', 'post_status' => 'publish', 'suppress_filters' => true), ARRAY_A);if (!empty($posts)){ foreach ($posts as $post) { $xml .= sprintf('<url><loc>%s</loc><lastmod>%s+07:00</lastmod></url>', get_permalink($post['ID']), str_replace(' ', 'T', date('Y-m-d h:i:s', strtotime($post['post_date'])))); }}/** * output */header('Content-type: text/xml; charset=utf-8');ob_start();echo sprintf('<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">%s</urlset>', $xml);echo PHP_EOL;echo sprintf('<!-- %s / %s -->', $_SERVER['SERVER_NAME'], date('Y-m-d H:i:s', time()));$content = ob_get_clean();@ob_end_clean();echo $content;@file_put_contents('sitemap.xml', $content);/** * EOF */
Thank anh để em nghiên cứu.Em cũng vừa nghiên cứu được httacess Code: RewriteRule ^(?!.*[.]xml$).*$ /public_html/index.html RewriteRule ^sitemap\.xml$ /public_html/sitemap/sitemap.xml Em thấy chạy ổn share lại cho bạn nào đi sau.Mã mới cháp vá không dám đảm bảo mã đúng hoàn toàn