Проблемы с mod rewrite в .htaccess, как убрать символ вопроса из url?
GNU/Linux, UNIX, Open Source → Программное обеспечение
btfnix
написал 18 июня 2014 года в 12:44 (8923 просмотра)
Ведет себя
как благородный джентельмен; открыл 5 тем в форуме, оставил 1 комментарий на сайте.
В общем, был изначально урл вида:
site.com/fr/index.php?category/ololo
Набросал .htaccess, стал:
Как удалить вопрос перед category?
Вот код .htaccess:
Уже всю голову сломал.
Последние комментарии
-
OlegL, 17 декабря 2023 года в 15:00 →
Перекличка
21
-
REDkiy, 8 июня 2023 года в 9:09 →
Как «замокать» файл для юниттеста в Python?
2
-
fhunter, 29 ноября 2022 года в 2:09 →
Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
6
-
Иванн, 9 апреля 2022 года в 8:31 →
Ассоциация РАСПО провела первое учредительное собрание
1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 →
Логи catalina.out в TomCat 9 в формате JSON
1
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

Дело в том, что с параметрами (?category/ololo) надо работать через переменную %{QUERY_STRING}. В вашем случае получится примерно так:
RewriteCond %{QUERY_STRING} ^(category/.+)$ RewriteRule ^fr/index\.php$ /fr/%1? [NC,R=301,L]Теперь все супер и в url то, что нам нужно.
Но не работает страница, выдает 404.
Как передать при этом еще и get запрос?
Нужно убрать флаг «L» для этого правила (чтобы оно не было последним) и добавить в конец что-нибудь в духе:
А в своем обработчике (в index.php) работать со значением try. Немного костыльно, потому что без этого try= все зациклится.
Коллеги, всем привет!
Помогите пожалуйста.
Задача требует удаления знака » / » из url адреса.
В чем суть:
Есть адрес domain.com/file.php
Я через mod_rewrite убрал из url » .php » и теперь фаил доступен по адресу domain.com/file
но получается что появилась возможность ошибки ввода url.
Например юзер введет адрес domain.com/file/ то конечно же сработает ошибка и сайт не загрузится.
Помогите пожалуйста решить этот вопрос.
То есть должно быть примерно следующее:
Если в url в конце адреса есть » / » то мод должен его обрезать и направить пользователя на адрес последнего слеша » / »
Правильным решением будет добавление условия с проверкой на существование каталога/файла. Т.е. выполнять преобразование file -> file.php, только если это условие не выполнилось:
RewriteCond %{REQUEST_FILENAME} !-f # только после этого идут ваши правила вроде такого: RewriteRule ^/(.+)$ /$1.php