@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

что делать?
  • Вопрос задан
  • 639 просмотров
Пригласить эксперта
Ответы на вопрос 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 для поисковиков.
Больше ничего делать не нужно.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ASTRIO agency Ульяновск
от 30 000 до 100 000 руб.
МАКСИДОМ Санкт-Петербург
от 85 000 до 110 000 руб.