@newbie3

Как создать sitemap.xml на PHP?

у меня есть sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
            http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
  <loc>http://site.ru/</loc>
</url>
<url>
  <loc>http://site.ru/filmebi.php</loc>
</url>
<url>
  <loc>http://site.ru/musika.php</loc>
</url>


и на PHP коде где у меня такой код:
switch($Page){
        case "index":
           include_once('resource/main.php');
        break;
        case "aboutus":
           include_once('resource/about.php');
        break;
        case "ads":
           include_once('resource/ads.php');
        break;
        case "news":
           include_once('resource/news.php');
        break;
        case "sitemap.xml":  //тут у меня проблема
           include_once('sitemap.xml' ); 
        break;
        case "robots.txt":
           include_once('robots.txt');
        break;
default:
           include_once('error/error404.php');

указываю include_once('sitemap.xml' ); но пишет такую ошибку :

Parse error: syntax error, unexpected T_STRING in D:\OpenServer\domains\testi.dev\sitemap.xml on line 1

что делать?
  • Вопрос задан
  • 1015 просмотров
Пригласить эксперта
Ответы на вопрос 3
@MadridianFox
Web-программист, многостаночник
Каким образом вы передаёте параметр $Page скрипту?
Обычно, когда создают php приложение с единой точкой входа, используют mod_rewrite, ну и отрезают всё что идёт после домена, и присваивают отрезанное некоторому get параметру.
Можно обойтись и без mod_rewrite, но тогда ссылки будут иметь вид index.php?page=index
В первом случае необходимо в .htaccess добавить условие, что переданный путь не является файлом или папкой.
Во втором случае, ничего не мешает поисковому боту, или кому угодно забрать этот xml файл из корня сайта, и делать дополнительных телодвижений по его отдаче не нужно.

Если уж вам очень уж хочется сделать так как делаете, то необходимо не подключать xml файл, а читать его содержимое и выводить на страницу. Что-то вроде:
case "sitemap.xml":  
    echo get_file_contents('sitemap.xml'); 
break;
Ответ написан
@oxidmod
инклудьте sitemap.php, а в нем отадвайте контент xml файла
Ответ написан
@mr_molodoy
Я не совсем понимаю для чего Вам sitemap подключать к php скрипту?
sitemap.xml Вам следует положить в корневой директории сайта (рядом с index.php) и он будет доступен по адресу http://ваш-сайт/sitemap.xml для поисковиков.
Больше ничего делать не нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы