Создание карты сайта XML с PHP

Я пытаюсь создать карту сайта, которая автоматически обновит. Я сделал что-то похожее со своим каналом RSS, но эта карта сайта отказывается работать. Можно просмотреть его живой по http://designdeluge.com/sitemap.xml, я думаю, что основная проблема состоит в том, что не распознавание PHP кодирует. Вот полный источник:

 ';

?>



    
        http://designdeluge.com/
        2010-04-20
        weekly
        1.00
    

    
        http://designdeluge.com/about.php
        2010-04-20
        never
        0.5
    

    
        http://designdeluge.com/".$title."
        ".$date."
        never
        0.8
    ";

 } ?>


Проблема состоит в том, что динамический URL (например, те, которых вытягивают от DB) не сгенерирован, и карта сайта не проверит.Спасибо!

Править: Прямо сейчас я просто пытаюсь получить сам код, работающий. У меня есть настроенный как файл PHP на моем локальном сервере тестирования. Код выше используется. Прямо сейчас ничто ничего не отображает на экране или в источнике. Я думаю, что сделал синтаксическую ошибку, но я ничего не могу найти. Любой и вся справка ценятся!

РЕДАКТИРОВАНИЕ 2: хорошо, я разобрался в нем парни. По-видимому, я должен был повторить определение XML с PHP. Заключительный код отправляется выше.Спасибо за помощь!

16
задан williamg 1 May 2010 в 02:19
поделиться

1 ответ

Если вы посмотрите на sitemap.xml , который сгенерирован (с использованием исходного кода, в вашем браузер, например) , вы увидите следующее:

<?php header('Content-type: text/xml'); ?>
<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http:/
...

, присутствующий в этом выводе, показывает, что код PHP не интерпретируется .


Вероятно, это потому, что ваш веб-сервер не распознает .xml как расширение файлов, которые должны содержать код PHP .

Как минимум два возможных решения:

  • Переконфигурируйте сервер, чтобы файлы XML проходили через интерпретатор PHP (может быть, не такая уж хорошая идея: это может вызвать проблемы с существующими файлами!)
  • Измените расширение вашей карты сайта, например, на sitemap.php , чтобы оно интерпретировалось вашим сервером.


Я бы добавил другое решение:

  • Имейте файл sitemap.php , содержащий код
  • И используйте RewriteRule , чтобы sitemap.xml URL-адрес фактически указывает на файл sitemap.php

Таким образом, у вас будет URL-адрес sitemap.xml , который хорош (обязательно?) , но поскольку код будет в sitemap.php , он будет интерпретирован.

См. Apache mod_rewrite .

31
ответ дан 30 November 2019 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: