Команда Symfony для редактирования файла Robots.txt

Я пишу команду, которая обновит мой файл robots.txt, у меня есть страницы категорий с небольшим содержанием, и у меня есть общедоступный флаг db, чтобы показывать или нет эти страницы, теперь я хочу создать команду, которая автоматически исключает эти страницы в файле robots.txt.

Мой robots.txt находится в веб-каталоге. Я создал команду, которая работает на

sudo php app/console webmain:robot_excluded_category_command

И моя команда выглядит так

class RobotExcludedJournalsCommand extends ContainerAwareCommand
{
    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setName('webmain:robot_excluded_category_command')
            ->setDescription('Exclude category in robots');
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $container = $this->getContainer();
        new GFinderBundle($container->get('kernel'));
        $result = [];
        foreach (CategoryRepository::getAll() as $category) {
         if ($category->getPublic() == 0){
                    $result [] = [
                        'id' => $category->getName()
                    ];
         }
        }
        ladybug_dump_die($result);

    }

В моем $result я получил все категории, которые следует исключить из robots.txt например, имена (наука, фитнес, игры, жизнь ...)

Мне нужно добавить или отредактировать это в robots.txt с помощью моей команды

# Categories
User-agent: *
Disallow: /category/science
Disallow: /category/fitness
Disallow: /category/gaming
Disallow: /category/life
.
.
.

Как лучше всего отредактировать файл robots.txt с помощью команды symfony, чтобы проверить список и add/remove(update) с последними изменениями, которые я получаю с моим результатом?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
472
1

Ответы 1

Рассмотрим это с другой стороны - не создавайте файл, просто укажите маршрут под названием robots.txt. Пока вы возвращаете text/plain в качестве типа MIME, не имеет значения, настоящий это файл или нет.

Затем вы можете просто создать метод для создания содержимого для вас. Подумайте о добавлении какого-либо кеширования, чтобы предотвратить перегрузку вашего приложения.

Что-то вроде этого:

// if no cache {
    $robotsList = Robots::list();
// }

$response->setContent($robotsList);
$response->setStatusCode(Response::HTTP_OK);

// sets a HTTP response header
$response->headers->set('Content-Type', 'text/plain');

// prints the HTTP headers followed by the content
$response->send();

И что вы думаете об этом в foreach $ RobotTxtFile = fopen ($ RobotDir, "w"); $ txt = "Запретить: / category /".$ category-> getName ()." \ n "; Файл будет перезаписываться каждый раз при установке команды, и это тоже может помочь ....

Strahinja90bg 03.04.2018 14:23

Нет необходимости, вы просто добавляете ненужную сложность. Не нужно беспокоиться о разрешениях или записи в файл.

Thomas Edwards 03.04.2018 17:15

Другие вопросы по теме