Как убрать возможность переходить по файлам после .php?
Добрый день, у меня есть страницы (файлы) на сайте вида:
https://site.ru/generator_zagadok.php
https://site.ru/generator_klichek.php
и так далее. В Вебмастере вижу, что есть переходы по адресу /generator_zagadok.php/zagadki.js при этом страница открывается, но уже без стилей и скриптов, вероятно из-за несоответствия путей до файлов стилей и скриптов.
Мне нужно сделать так, чтобы либо такие страницы редиректились на основную страницу запроса, либо выдавали 404 ошибку, либо как это правильно сделать, чтобы доступ к такому не был возможен. Спасибо.
Использую обычный хостинг (jino), php 8.0, apache web server
Дополнительно:
Скорее всего у вас берутся пути до стилей исходя из параметров запроса, найти и прибить пути гвоздями
/generator_zagadok.php/zagadki.js при этом страница открывается, но уже без стилей и скриптов
Открывается страница html или же скрипт JS zagadki.js?
|
1 |
RewriteEngine On RewriteRule ^generator_zagadok.php/.*$ https://site.ru/generator_zagadok.php [R=301,L] RewriteRule ^generator_klichek.php/.*$ https://site.ru/generator_klichek.php [R=301,L] |
Это должно перенаправить запрос, начинающийся с /generator_zagadok.php/ или /generator_klichek.php/ на основную страницу запроса.
|
1 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> |
Все запросы к несуществующим файлам будут отправляться на index.php
- Спасибо, для SEO вреда не нанесёт это ?
- Александр Андропов, если у вас единая точка входа, роутинг, то нет. Если у вас каждый файл php открывается как есть (отдельным модулем), то да.
- Одиночка Айс, с какого перепуга? Это просто перенаправление с несуществующих файлов/директорий. Если файл page.php существует, то он откроется. И проиндексируется.
- Однако стоит учесть, что любые адреса будут открываться с кодо 200, что ожет нанести вред. В это случае файл index.php ожет наприер отдавать код 404.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для того чтобы предотвратить возможность перехода по файлам после .php, можно использовать файл .htaccess и настроить RewriteRule для перенаправления всех запросов на файлы .php обратно на главную страницу или на другую страницу.
Вот пример кода, который можно добавить в файл .htaccess:
Этот код будет перенаправлять любые запросы к файлам .php обратно на главную страницу сайта.
Если вы хотите перенаправить на другую страницу, замените "/" на путь к этой странице. Например, если вы хотите перенаправлять на страницу "error.php", замените "/" на "/error.php".
Не забудьте сохранить изменения в файле .htaccess и удостовериться, что модуль mod_rewrite включен на вашем сервере.
После применения этих настроек, пользователи больше не смогут переходить по файлам после .php.