Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/54: Рейтинг темы: голосов - 54, средняя оценка - 4.70
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66

Настройка mod_rewrite (ЧПУ)

21.04.2013, 23:39. Показов 11020. Ответов 140
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
имеется сайт на котором нужно сделать ЧПУ на htaccess
страницы имеют вид http://mysyte.ru/page.php?title_url=mypage&id=30

первую часть у меня получилось преобразовать http://mysyte.ru/page.php?title_url=mypage в http://mysyte.ru/mypage
а вот с &id=30 не получается
с первой частью я поступил так:

Code
1
2
RewriteRule ^page.php/?title_url=$ [R=301,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ page.php?title_url=$1 [L]
для второй части пишу так

Code
1
2
RewriteRule ^page.php/?title_url=$1&id=$ [R=301,L]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ page.php?title_url=$1&id=$2 [L]
но сервер если набрать http://mysyte.ru/mypage/30 выдает ошибка 404 - такой страницы не существует подскажите где ошибка? прошерстил кучу форумов нигде ничего не нашел все варианты которые находил так же не работают.

Добавлено через 1 час 41 минуту
пишу так
Code
1
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ page.php?title_url=$1&id=$2 [L]
страница выводится но без css т.е. белая рамка и в ней данные из нужной страницы

Добавлено через 1 час 17 минут
видимо тут никогда не дождаться помощи!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.04.2013, 23:39
Ответы с готовыми решениями:

mod_rewrite ЧПУ
Приветствую. Понимая, что подобных тем тьма, не хотел создавать новую но времени у меня нет особо чтоб рыскать ответ на мой вопрос, с...

Mod_rewrite и ЧПУ
Всем привет. Уже 2-ой день мучаюсь над реализацией ЧПУ для своего сайта. Хочу реализовать это дело через mod_rewrite. На локальной машине...

Не работает ЧПУ (mod_rewrite)
Уже голову себе сломал. Есть такая ссылка: <a href="/category/23">Категория с id=23</a> Теперь условие в .htaccess RewriteEngine on ...

140
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 14:54  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от KOPOJI Посмотреть сообщение
Хм. А так?
Code
1
RewriteRule ^(.*)$ page.php?title_url=$1 [L]
Добавлено через 40 секунд

нет.

это означает "любой символ любое количество раз"
вот при таком раскладе работает http://s808.local/Transfers-in-Czech-Republic.php

Code
1
RewriteRule ^(.*)/?$ page.php?title_url=$1 [L]
то есть так же как и раньше у меня получалось, а дальше нет
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 14:56
Цитата Сообщение от KOPOJI Посмотреть сообщение
нет.
Ну а хотя бы слэша перед page?
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:03  [ТС]
только эта часть http://s808.local/Residence-permit-Czech-Republic и только без слеша на окончании

Добавлено через 2 минуты
и только если написать RewriteRule ^(.*)/?$ page.php?title_url=$1 [L] без /? после скобок не рабоатет
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 15:04
Должно работать все нормально.

Добавлено через 59 секунд
Code
1
RewriteRule . page.php [L]
А так работает?
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:07  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Должно работать все нормально.

Добавлено через 59 секунд
Code
1
RewriteRule . page.php [L]
А так работает?
нет так не работает только с полными путями
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 15:11
Чем черт не шутит
Code
1
RewriteRule ^(.*)/(.*)[/]?.*$ page.php?title_url=$1&id=$2
ХЗ наугад ткнул
Сорри лень щас вспоминать регулярки и гуглить про Апач.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 15:11
Так.. и что же находится в этом загадочном page.php ? Такой код
Code
1
2
3
4
#что этот
RewriteRule ^(.*)$ page.php?id=$1 [L]
#что этот
RewriteRule . page.php [L]
Перенаправляет все (кроме реальных путей) запросы на файл page.php, независимо от того, что вы там набрали, хоть site.ru/fdsf/fsdf/sdf/sdf/sd/fsdf/sd/
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:21  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Так.. и что же находится в этом загадочном page.php ? Такой код
Code
1
2
3
4
#что этот
RewriteRule ^(.*)$ page.php?id=$1 [L]
#что этот
RewriteRule . page.php [L]
Перенаправляет все (кроме реальных путей) запросы на файл page.php, независимо от того, что вы там набрали, хоть site.ru/fdsf/fsdf/sdf/sdf/sd/fsdf/sd/

в каком смысле? в нем идее reqire_once "страница в которой по функции $_GET['title_url'] идет запрос к БД на выборку всех полей из таблицы такой-то где title_url = $title_url ";

если я правильно понял ваш вопрос то вот как-то так.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 15:26
разместите в файле page.php, в самом начале, такой код:
PHP
1
<?php var_dump($_GET);exit;
И попробуйте понабирать адреса

Добавлено через 55 секунд
в .htaccess оставьте код
Code
1
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ page.php?id=$1 [L]
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:28  [ТС]
Цитата Сообщение от Garrys808 Посмотреть сообщение
в каком смысле? в нем идее reqire_once "страница в которой по функции $_GET['title_url'] идет запрос к БД на выборку всех полей из таблицы такой-то где title_url = $title_url ";

если я правильно понял ваш вопрос то вот как-то так.
и полный путь другому файлу у меня реализован так http://s808.ru/page.php?title_... sion&id=24
он получает id из ссылки на странице page.php
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 15:33
Цитата Сообщение от mialpet Посмотреть сообщение
RewriteRule ^(.*)/(.*)[/]?.*$ page.php?title_url=$1&id=$2
Хотя бы просто скажите что это неправильно, чего вы меня игнорите?
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:37  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
разместите в файле page.php, в самом начале, такой код:
PHP
1
<?php var_dump($_GET);exit;
И попробуйте понабирать адреса

Добавлено через 55 секунд
в .htaccess оставьте код
Code
1
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ page.php?id=$1 [L]
вот результаты:
http://s808.local/Order-Transfer/21 - array(1) { ["id"]=> string(17) "Order-Transfer/21" }
http://s808.local/page.php?tit... sfer&id=21 - array(2) { ["title_url"]=> string(14) "Order-Transfer" ["id"]=> string(2) "21" }
http://s808.local/page.php?tit... h-Republic - array(1) { ["title_url"]=> string(31) "Residence-permit-Czech-Republic" }
http://s808.local/Residence-permit-Czech-Republic - array(1) { ["id"]=> string(31) "Residence-permit-Czech-Republic" }
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 15:43
Цитата Сообщение от mialpet Посмотреть сообщение
RewriteRule ^(.*)/(.*)[/]?.*$ page.php?title_url=$1&id=$2
Стоп дык это и есть ваш вариант первоначальный и как я и говорил путь к CSS файлам под него попадает, снова напишите свой вариант и не забудьте
Code
1
2
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Как мне подсказывает логика это не будет редиректить пути к существующим файлам, и будет вам счастье блин.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 15:46
Так, отлично. php-файл не трогаем, оставляем тот же код. Меняем .htaccess
Code
1
2
3
4
5
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_A-Za-z0-9]+)/?$ page.php?title_url=$1 [L]
RewriteRule ^([-_A-Za-z0-9]+)/(\d+)/?$ page.php?title_url=$1&id=$2 [L]
Переходим по первому и последнему адресам.

Добавлено через 1 минуту
Еще как будет
-d - является директорией
-f - является файлом
Восклицательный знак перед - отрицание, т.е. "Если файл не является директорией и не является файлом, то..."
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:46  [ТС]
Цитата Сообщение от mialpet Посмотреть сообщение
Хотя бы просто скажите что это неправильно, чего вы меня игнорите?
прошу прощения стараюсь решить проблему от-того и весь поглощен в процессе не увидел Ваше сообщение!
При вводе вашего варианта никакой реакции работают только полные пути
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 15:47
Руководство по настройке ЧПУ (Rewrite)
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 15:49
Цитата Сообщение от KOPOJI Посмотреть сообщение
Еще как будет
-d - является директорией
-f - является файлом
Восклицательный знак перед - отрицание, т.е. "Если файл не является директорией и не является файлом, то..."
...редирект, иначе нет, правильно?
CSS файл является файлом.
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:53  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Так, отлично. php-файл не трогаем, оставляем тот же код. Меняем .htaccess
Code
1
2
3
4
5
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_A-Za-z0-9]+)/?$ page.php?title_url=$1 [L]
RewriteRule ^([-_A-Za-z0-9]+)/(\d+)/?$ page.php?title_url=$1&id=$2 [L]
Переходим по первому и последнему адресам.

Добавлено через 1 минуту
Еще как будет
-d - является директорией
-f - является файлом
Восклицательный знак перед - отрицание, т.е. "Если файл не является директорией и не является файлом, то..."
вот результат

http://s808.local/Family-reunification - array(1) { ["title_url"]=> string(20) "Family-reunification" } - работает
http://s808.local/page.php?tit... nification - array(1) { ["title_url"]=> string(20) "Family-reunification" } - работает
http://s808.local/page.php?tit... sfer&id=21 - array(2) { ["title_url"]=> string(14) "Order-Transfer" ["id"]=> string(2) "21" } - нормально работает
http://s808.local/Order-Transfer/21 - array(2) { ["title_url"]=> string(14) "Order-Transfer" ["id"]=> string(2) "21" } - без CSS все выводится
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 15:58
вот если введете путь к css файлу, тогда его и получите.

Добавлено через 1 минуту
Цитата Сообщение от Garrys808 Посмотреть сообщение
вот результат
Итого:
1. регулярки рабочие, проблема в php-коде - т.к. обработка срабатывает так, как и должна - отправляет запрос на php-файл.
2. По поводу css - я уже писал, и не раз что нужно сделать - поставить слэш в начале путей

Добавлено через 2 минуты
было
HTML5
1
2
<link href="css/styles.css" rel="stylesheet" type="text/css" />
<link href="styles.css" rel="stylesheet" type="text/css" />
должно быть
HTML5
1
2
<link href="/css/styles.css" rel="stylesheet" type="text/css" />
<link href="/styles.css" rel="stylesheet" type="text/css" />
0
22.04.2013, 15:58

Не по теме:

Интересный случай... :umnik:
Ничего если я и дальше буду наблюдать? :popcorn:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.04.2013, 15:58
Помогаю со студенческими работами здесь

ЧПУ htaccess и mod_rewrite?
Всем доброго для! Кто может помогите разобраться с проблемой. Перечитал много тем а решения так и не нашел. Вот пример ссылки на...

Чпу, mod_rewrite и .htaccess
Наворотил делов так что вчера сайт вообще не отвечал, из-за условий в файле .htaccess он попадал в цикличность и выдавал сообщение...

Проблемы с настройкой ЧПУ в mod_rewrite
Уже не первый День и не первый раз пытаюсь осилить это ВЕЛИКОЛЕПНЫЙ модуль, но походу без посторонней помощи, более опытных специалистов...

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

Реализация ЧПУ на сайте (mod_rewrite)
Всем доброго времени суток. В общем, не хватает нервов уже на этот mod_rewrite и htaccess,поэтому пишу сюда. Подскажите,как правильно...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru