Открыть статичный файл с помощью .htaccess

12
M
На сайте с 04.12.2013
Offline
214
#11
Gerga:
Плюс используя "__DIR__" вы делаете такую возможность:

Да, только тут дело не в __DIR__, а в QUERY_STRING ;)

Хостинг FOZZY ( https://u75.ru/fozzy ) / Выслушаю предложения на домены ( https://u75.ru/domains-for-sale ) / Домены и скрипт для коротких ссылок ( https://u75.ru/domains-for-shortcuts )
Gerga
На сайте с 02.08.2015
Offline
94
#12

miketomlin,только он обязательно нужен... Параметр categoryID я показал для пример.. Там много разных параметров и много других файлов, это не только index.php?params, но и filter.php?params, shop.php?params и т.д. именно поэтому я использовал SCRIPT_FILENAME, а не просто "__DIR__ . '/index.php'".

Во втором решении от jkm я понял как реализовать.

Немного подкорректировал под свои нужды, получилось так:


<Directory /var/www>
RewriteEngine On
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{REQUEST_FILENAME}?%{QUERY_STRING} -f
RewriteRule ^ %{REQUEST_FILENAME}\%3F%{QUERY_STRING}? [L]
</Directory>

Это глобальная настройка на все сайты..

M
На сайте с 04.12.2013
Offline
214
#13

Я все же не уверен, что оно безопасно/целесообразно. У нас на паркинге такое через БД делается, т.е. адресам вроде index.php?categoryID=12 ставятся в соответствие имена загруженных файлов.

А подобные настройки сервера могут использоваться, но только для путей, т.е. если такое сделать с %{REQUEST_URI} (добавив нужный префикс), то апач успешно отбросит строку параметров.

SeVlad
На сайте с 03.11.2008
Offline
1528
#14

Gerga, я конечно не знаю насколько много файлов и что у тебя как, но возможно было бы лучше переименовать файлы (аля "index-categoryID-12.php". Т.е. все служебные символы заменить на дефис и переместить расширение) и заменить ссылки на них.

Просто как идея. Я тоже не очень уверен в надёжности/безопасности варианта с манипуляциями в хтацессе.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
fliger
На сайте с 17.09.2015
Offline
94
#15

Gerga, используя mod_rewrite, вы забиваете кнопки кувалдой. Модуль предназначен для иных целей.

У вас есть файл index.php, который выводит динамически какое-то содержимое в зависимости от параметра запроса. Вот и выводите это содержимое средвами PHP, зачем вам mod_rewrite?

В ссылке /index.php?categoryID=12 файл - это index.php. Он по параметру запроса categoryID=12 берет откуда-то (из базы данных или другого файла) данные и отображает их на странице вида /index.php?categoryID=12. Но физически файла по имени /index.php?categoryID=12 не существует, его нет в природе.

SeVlad
На сайте с 03.11.2008
Offline
1528
#16
fliger:
Но физически файла по имени /index.php?categoryID=12 не существует, его нет в природе.

Прикинь, существует:

Gerga:
Есть статичные файлы вида "index.php?categoryID=12"
Gerga:
ArbNet :

Какое имя файла на диске?

именно "index.php?categoryID=12".

Правда, в зависимости от ОС могут перекодироваться служ. символы.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий