Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 24.04.2013
Сообщений: 48

Запретить доступ по site.ru/index.php?id=1

28.12.2016, 16:29. Показов 1445. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени!
Встала задача написать ЧПУ для сайта.
Работа ЧПУ настроена, сейчас доступ к страницам происходит вида site.ru/Boks-ofis_Rossii_Passazhiry_vzjali_horoshij_s tart_f_4
Где
Boks-ofis_Rossii_Passazhiry_vzjali_horoshij_s tart_ - просто название фильма в транслите
f - означает что получаем фильм (f - фильм, r - каталог, pr - подраздел и тд)
4 - id фильма, раздела, подраздела и тд ( в зависимости что надо получить)

Все работает нормально, но есть одно НО!

Дело в том, что заказчик требует что бы все ссылки прямые (вида site.ru/index.php?id=1) были не доступны (КРОМЕ АДМИНКИ!!!)

Есть мысли, прописать что-то подобное:
PHP
1
if(strpos($_SERVER['REQUEST_URI'], '.php')) header('location: /404.php');
Но по моему это не совсем правильный вариант.

Помогите пожалуйста с реализацией через htaccess

Добавлено через 1 час 53 минуты
Не стал морочить голову так как там много получается костылей..
Кому интересно, вот решение которое использовал
PHP
1
2
3
4
5
6
7
8
if(strpos($_SERVER['REQUEST_URI'], '.php') && !strpos($_SERVER['REQUEST_URI'], 'admin.php')) 
{
    //header('location: /404.php');
    header("HTTP/1.0 404 Not Found");
    header("HTTP/1.1 404 Not Found");
    header("Status: 404 Not Found");
    die();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.12.2016, 16:29
Ответы с готовыми решениями:

Как запретить доступ к файлам на хостинге, кроме index.php
Добрый ночи товарищи! Создал сайт, пока он на тесте. Чтобы загрузить главную страницу мне нужно набрать...

Site.ru/index?=1213. вместо site.ru/index?=12136541361
Здравствуйте, как можно при выводе из базы данных выводить ссылку не полностью, а сокращённо, то есть на конце ставить много точие, но так...

Чтобы при вводе "site.ru" подразумевалось "site.ru/index.php"
Использую OpenServer, установил Yii2 и сделал корневую папку доменов "basic\web", установил туда свой сайт, но столкнулся с такой...

18
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.12.2016, 19:33
Заказчик дело говорит. По-хорошему дубли лучше вовсе не плодить.

Но раз уже сделали, то такое обычно в .htaccess закрывается правилом с условием с THE_REQUEST.
0
0 / 0 / 1
Регистрация: 24.04.2013
Сообщений: 48
28.12.2016, 19:36  [ТС]
Если не затруднит, напишите готовый пример, по возможности объясните как работает..
Не силен просто в этом, но не помешают эти знания.
Благодарю!
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
28.12.2016, 22:35
Valen_x, лучше не 404, а 301 редирект сделать. В случае 404 бот будет ломится проверять, а вдруг заработает. В 301 "склеит" и не так часто проверять будет.
0
0 / 0 / 1
Регистрация: 24.04.2013
Сообщений: 48
28.12.2016, 22:37  [ТС]
pyramida, не совсем понял. Редирект куда сделать?
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
28.12.2016, 22:41
Valen_x, с параметрами, на ЧПУ.
0
0 / 0 / 1
Регистрация: 24.04.2013
Сообщений: 48
28.12.2016, 22:44  [ТС]
pyramida, а как узнать имя фильма в htaccess?
вот будет примерно такая ссылка site.ru/index.php?act=film&id=1
а мне с нее надо получить site.ru/name_film_f_1
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
28.12.2016, 22:50
Valen_x, Вы htaccess лучше не трогайте. Лучше все редиректы через PHP. Считается, что записи в htaccess очень сильно нагружают сервер.
ЧПУ сделано через htaccess? Я по правилам его, ничего не могу сказать Как раз изучаю PHP ройтеры это более хорошее решение, чем правила в htaccess
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.12.2016, 22:50
Цитата Сообщение от Valen_x Посмотреть сообщение
Редирект куда сделать?
Редирект на канонический адрес, но это совсем не обязательно и может быть даже вредно. pyramida, чтобы делать редирект, нужно быть уверенным, что id корректен. На уровне .htaccess это сделать проблематично, к тому же, если делать отлов просто по index.php, то id может и не быть. Если делать программно, причем так, как сделал ТС, то нужно еще суметь определить, был ли исходный адрес каноническим или нет. К тому же тут нужно будет делать два варианта: либо редирект, либо 404-ая.

Лучше закрыть и забыть. А еще лучше, как написал выше, вообще не иметь дублей, чтобы нечего было закрывать.
0
0 / 0 / 1
Регистрация: 24.04.2013
Сообщений: 48
28.12.2016, 22:56  [ТС]
miketomlin, ага, вот и я так подумал...
Были и такие мысли...
типа отравляем на файл, который вытягивает по id с БД имя, затем формирует ЧПУ адрес и перенаправляет..
Но думаю это ПС вообще не понравится.. По сути попахивает извращением))
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.12.2016, 23:05
Цитата Сообщение от Valen_x Посмотреть сообщение
типа отравляем на файл, который вытягивает по id с БД имя, затем формирует ЧПУ адрес и перенаправляет..
Но думаю это ПС вообще не понравится.. По сути попахивает извращением))
Нормальный вариант, но лишний. Такое делают, когда меняется адресация у уже работающего раскрученного сайта.
0
0 / 0 / 1
Регистрация: 24.04.2013
Сообщений: 48
28.12.2016, 23:10  [ТС]
miketomlin, Это да... Но это проект новый пишу на заказ. Не люблю писать разные подобные премудрости.
Думаю такой как вот реализовал вариант, самый простой, понятный и без особых затей..
+ по защите, так как практически не реально узнать имена каталогов, файлов на которых идет обработка данных, и имена переменных.
Согласны?
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.12.2016, 23:13
Не совсем понял. Про index.php догадаться легко, а вот если его переименовать в dff6sfj3gog7hrf0.php, то дубли можно вообще не закрывать
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
28.12.2016, 23:16
Цитата Сообщение от miketomlin Посмотреть сообщение
Редирект на канонический адрес, но это совсем не обязательно
Редирет не показывает канонический адрес, а делает перенос урла. ТС нужно, чтобы не было коротких урл на сайте. Почему я посоветовал сделать 301, написал выше про роботс.
Цитата Сообщение от miketomlin Посмотреть сообщение
и может быть даже вредно
Чем например? Тем, что ЧПУ это часть контента и участвует в ранжировании?
Вы пишите много "если", не видя кода я и не сказал "как", а сказал "что лучше сделать". Если у ТС будут вопросы, он спросит.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.12.2016, 23:18
Я на боковую. На последок вам простая статья, как можно сделать нативные ЧПУ:
Как сделать единую точку входа с ЧПУ?

Добавлено через 2 минуты
Цитата Сообщение от pyramida Посмотреть сообщение
Вы пишите много "если", не видя кода я и не сказал "как", а сказал "что лучше сделать".
А я сказал, что лучше не делать, если сайт новый, о чем можно догадаться по стартовому посту ТСа.
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
28.12.2016, 23:22
Цитата Сообщение от miketomlin Посмотреть сообщение
если сайт новый
В этом случае и нужно предусмотреть все заранее, и не давать ботам лишнего.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.12.2016, 23:25
P.S. Редирект делается, но не для таких дублей, а например для трэйлинг слешей или верхнего регистра (послед. см. по ссылке).

Добавлено через 3 минуты
Цитата Сообщение от pyramida Посмотреть сообщение
В этом случае и нужно предусмотреть все заранее, и не давать ботам лишнего.
Если сразу закрыть левые адреса, о чем изначально шла речь, и нигде их не постить, ботам неоткуда будет их взять.

Всем спать!
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
28.12.2016, 23:30
Цитата Сообщение от miketomlin Посмотреть сообщение
Если сразу закрыть левые адреса, о чем изначально шла речь, и нигде их не постить, ботам неоткуда будет их взять.
Опять "если" Бот может проигнорировать закрытие в роботс и ноиндекс и попадет страница в индекс. Такие случаи бывают.
Спокойной ночи. Я уже выспался.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.12.2016, 23:37
Угу, несуществующая страница попадет в индекс Такие случаи бывают только у криворучек.

Спасибо, и вам спокойной ночи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2016, 23:37
Помогаю со студенческими работами здесь

Fread(): Length parameter must be greater than 0 in C:\OpenServer\domains\site.ru\index.php on line 138
case 1: $bb = "111"; $id = $_POST; $file = fopen('1.txt', 'r'); $text = fread($file, filesize('1.txt')); fclose($file); ...

Как работает url такого типа index.php/reg/index
Мне интересно как это работает. И в каких случаях это пригодится. Встречал такой url в cms. Я попробовал у себя получилось так, что...

Как сделать одинаковое отображене нужного мне контента в index.php и index.html ?
Здравствуйте ! Подскажите пожалуйста .И извините за глупый вопрос.К php редко обращаюсь. Опишу ситуацию вкратце есть форум index.php в...

Формирование ссылки вместо index.php или main.php
Здравствуйте, у меня сформировался вопрос! Как сделать ссылку такого вида site.ru/main вместо site.ru/main.php Добавлено через 24...

index.php не иполняется код php вставленный в html
index.php не иполняется код php вставленный в html, пример: есть файлы: index.php - исполняемый файл main.tpl - файл c html кодом, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru