Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773

Не знаю как сделать простой пример по mod_rewrite

26.12.2012, 09:21. Показов 7491. Ответов 70
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет всем. Недавно задумался сделать ЧПУ, но немного не понял как это сделать. Короче ссылка у меня вот такая stail.ru/category/tasks_category?cat=stroitel&page=1. В общем у меня есть контролер tasks_category.php в котором в зависимости от полученной переменной подставляется в переменную cat транслит категории. Вторая переменная это постраничная навигация указывает страничку категории. Зарание большое спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2012, 09:21
Ответы с готовыми решениями:

Не знаю как сделать простой скрипт.
Помогите со скриптом, мне он нужен для одной сети Я хочу разместить картинку в гостевую книгу чтоб при загрузке картинки работал скрипт и...

В класс "Множество" добавить методы по обработке
Есть готовая лаба, нужно переделать под другой вариан Помогите, пожалуйста..... Порядок выполнения работы. 1. Выбрать класс АТД в...

Подскажите как сделать mod_rewrite
Решил настроить на сайте .htaccess, чтобы адреса страниц были красивые, но! Весь поиск перерыл, всю голову сломал... ничего не получается...

70
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.01.2013, 18:46
Студворк — интернет-сервис помощи студентам
ну значит денвер глючит, какая разница
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
02.01.2013, 19:34  [ТС]
Денвер ведь может только глючит если комп совсем допотопный, а так я его совсем недавно вместе с виндой перестанавливал.

Добавлено через 26 минут
Цитата Сообщение от KOPOJI Посмотреть сообщение
Code
1
2
3
RewriteRule ^home/?$ index.php?page=main&rem=home [L]
RewriteRule ^about/?$ index.php?page=info&rem=about [L]
RewriteRule ^office/?$ index.php?page=register&rem=office [L]
а если я так сделаю
Code
1
RewriteRule ^([A-z]+)/?$ index.php?page=register&rem=$1 [L]
ничего страшного не будет для других регулярок, а то как то не хочется для каждой отдельно использовать, не будет ли больших нагрузок?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.01.2013, 20:01
Вы поймите, три-четыре таких регулярки, да даже десяток - это маленькая нагрузка, можно сказать что и нет ее вообще. И я не знаю почему у вас глючит, лишь подразумеваю что из-за денвера. самый простой вариант - закинуть на любой бесплатный хостинг файл .htaccess и файл index.php где просто прописать
PHP
1
var_dump($_GET);
к примеру и посмотреть как там будет работать. Я уверен, все будет отлично
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
02.01.2013, 20:34  [ТС]
Я не в том смысле, что глючить буде, а в том что потом будет добавляться другие странички и не хочется каждый раз добавлять регулярку, а так напишу четыре на весе ссылки без вспомогательных get переменных.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.01.2013, 21:01
Слишком разные адреса.

Добавлено через 1 минуту
Делайте так и добавляйте сколько угодно: в скрипте обрабатываете $_GET['page'] а регулярку такого вида
Code
1
RewriteRule ^([A-z]+)/?$ index.php?page=$1 [L]
Добавлено через 3 минуты
в скрипте наподобие такого
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function error404() {
    header('HTTP/1.0 404 Not Found');
    echo '<h1> Ошибка 404 </h1><br /><br /><h3>Запрошенная страница не найдена</h3>';
    exit;
}
if(isset($_GET['page'])) {
    $page = trim($_GET['page']) . '.php';
    if(!file_exists($page))
        error404();
    require $page;
}
else {
    #главная страница
}
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
02.01.2013, 21:26  [ТС]
А мне надо именно rem=$1, а если им заменить page=$1 ничего не работает.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.01.2013, 21:28
Это не работает?
Code
1
RewriteRule ^([A-z]+)/?$ index.php?rem=$1 [L]
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
02.01.2013, 21:38  [ТС]
Хорошее выражение лица именно так - не работает. по ссылке http://stail.ru/info/about заходит а по http://stail.ru/about пишет странички не существует. Это вот еще вопросик как нужно писать в регулярке что бы можно было использовать - а то я решил заменить подчеркивание - и ничего не определяет. Зарание большое спасибо
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.01.2013, 22:09
Цитата Сообщение от Братуха Посмотреть сообщение
именно так - не работает
не работает в каком плане? RewriteCond присутствуют?
Проверьте так
PHP
1
<?php var_dump($_GET); exit;
Цитата Сообщение от Братуха Посмотреть сообщение
Это вот еще вопросик как нужно писать в регулярке что бы можно было использовать - а то я решил заменить подчеркивание - и ничего не определяет
Code
1
RewriteRule ^foo\-bar$ ....
хотя должно работать и без экранирования
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
02.01.2013, 22:41  [ТС]
Оно ж по идее должно было хоть что-то написать, всего скорее что-то неправильно сделал но ничего не пишет как нет такой странички. хотя я вставил запись перед формированием ошибки 404
PHP
1
2
3
4
5
6
7
var_dump($_GET); 
exit;
if(!defined('IRB_KEY'))
    {
       header("HTTP/1.1 404 Not Found");      
       exit(file_get_contents('../../404.html'));
    }
Добавлено через 16 минут
поставил перед переключателем страниц, что в index.php вот что выдало array(1) { ["rem"]=> string(5) "about" }
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.01.2013, 22:42
ну значит все хорошо - проверяйте уже сам скрипт, а от апача отстаньте, он свое дело сделал
0
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
03.01.2013, 13:07  [ТС]
А как такое может быть если я прописываю вот такую регулярку
Code
1
RewriteRule ^([A-z]+)/?$ index.php?page=info&rem=$1 [L]
и все работает если б была проблема в коде эта регулярка не работала, var_damp показал что в массиве только одна переменная, а вторая ведь используется в переключателе страниц - ее нет и нет такой страницы, если я конечно чего не попутал.

Добавлено через 14 часов 3 минуты
KOPOJI, а как путь надо прописывать для картинки в html? А то я и абсолютный и относительный, но ничего не вышло. В css все нормально потому что все пути относительно корня сайта. У меня картинка находится в skins/images/cat/image.jpeg а сам шаблон в skins/tpl/index.tpl. Зарание большое спасибо
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
03.01.2013, 13:10
от корня сайта - в начале адреса слэш.
было
HTML5
1
<img src="images/foo/bar.jpg">
стало
HTML5
1
<img src="/images/foo/bar.jpg">
Тоже самое со стилями, подключаемыми js-скриптами и ссылками - ссылки тоже должны быть от корня, иначе путь будет неверным
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
03.01.2013, 13:41  [ТС]
Это я дурак изменял одну картинку, а смотрел на другую
0
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
14.01.2013, 13:39  [ТС]
Подскажите а как надо писать в регулярке если в get переменной храниться значение md5 я в том смысле что для обычных я использую ([A-z]+) а тут же и цифры и буквы. Зарание большое спасибо
0
 Аватар для Vovan-VE
13210 / 6601 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
14.01.2013, 15:29
[A-z] захватывает также символы между «Z» и «a»: «[», «\», «]», «^», «_», «`». Никакой case insensitive тут даже не причем, он действует после "развертывания" диапазона.

Братуха, MD5 - 32 шестнадцатиричных цифры: [a-fA-F0-9]{32}
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
14.01.2013, 21:32  [ТС]
подскажите почему эта регулярка не работает
Code
1
RewriteRule ^map_podrabotka/([A-z0-9]+)/?$ order/map_podrabotka?m_task=$1 [L]
если ввожу цифры все нормально, но как ввожу all ничего не выходит. Кстати all это единственное что будет использоваться в регулярке из буквенных значений. Зарание большое спасибо.
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
15.01.2013, 00:50
Братуха, Руководство по настройке ЧПУ (Rewrite)
QSA - параметры ссылки ($_GET). Если его не указывать, они "потеряются"
Code
1
RewriteRule ^map_podrabotka/([A-z0-9]+)/?$ order/map_podrabotka?m_task=$1 [L,QSA]
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.01.2013, 06:31
Илья Федин, и зачем здесь QSA?
Братуха, может у вас там закралась русская буква в регулярке вместо латинской..?

Добавлено через 1 минуту
Илья Федин, Не знаю как сделать простой пример по mod_rewrite
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
15.01.2013, 09:31
Цитата Сообщение от KOPOJI Посмотреть сообщение
и зачем здесь QSA?
Вот зачем:
Цитата Сообщение от Илья Федин Посмотреть сообщение
?m_task=$1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.01.2013, 09:31

mod_rewrite - как сделать ЧПУ?
Как через ф-цию mod_rewrite сделать ЧПУ?

Простой код на haskell (элементарное) - не знаю как это в python реализовать
adjectives = nouns = funnn = ввожу в консоли funnn и вот output: *F_world&gt; funnn

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

Как сделать ошибку 404 в .htaccess при mod_rewrite
Всем доброго времени суток. Есть следующий код RewriteRule ^administrator$ /admin.php Он преобразовывает admin.php administrator....

Как управлять led с клавиатуры ? Есть простой пример ?
Например на клавиатуре нажимаю 1, светится led на 9 пине ?


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru