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

.htaccess и ЧПУ

08.04.2011, 15:18. Показов 5411. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос такой, решил сделать ЧПУ но нифига не получается, прописываю в .htaccess
Code
1
2
3
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^cat(.*)\.html$ /view_cat.php?cat=$1
закидываю на сервер, проверяю. УРЛы не меняются, захожу в файл который на сервере, а в нем написано
Code
1
2
3
4
5
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteRule ^cat(.*)\.html$ /view_cat.php?cat=$1
И что делать незнаю. Кто может помочь? или забить на это дело?
Может кто подскажет, как еще реализовать ЧПУ, сайт на php и mysql.
Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2011, 15:18
Ответы с готовыми решениями:

ЧПУ - htaccess
Здраствуйте уважаемые форумчане, хочу сделать ЧПУ для сайта, а сам не совсем разбираюсь в регулярных выражениях. Мне нужно вот из такого...

htaccess и ЧПУ
Всем привет! Помогите разобраться! Не получается сделать чпу(( Пример ссылок на сайте: test.ru/index.php?module=news ...

ЧПУ и .htaccess
Доброго времени суток! В файле .htaccess имеется такой код: RewriteEngine On Options +FollowSymlinks RewriteCond...

7
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
09.04.2011, 13:40
Цитата Сообщение от Shurickan Посмотреть сообщение
RewriteEngine on
RewriteRule ^cat
В таком виде проверяемый урл начинает на /cat , а не на cat. Надо либо
Code
1
2
RewriteEngine on
RewriteRule ^/cat...
либо
Code
1
2
3
RewriteEngine on
RewriteBase /
RewriteRule ^cat
1
0 / 0 / 0
Регистрация: 08.04.2011
Сообщений: 5
09.04.2011, 16:46  [ТС]
Большое спасибо.
Возник еще один вопрос: я хочу сделать что бы ссылка выглядела так.
Code
1
mysite.ru/ssylka-shpu-dlya-saita.html
причем ssylka-shpu-dlya-saita берется из базы, как правильно прописать в RewriteRule вместо вопросов?

Code
1
RewriteRule ?????\.html$ /view_post.php?id=$1
Спасибо.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
09.04.2011, 19:02
Цитата Сообщение от Shurickan Посмотреть сообщение
как правильно прописать в RewriteRule вместо вопросов?
А какие символы у Вас в ссылке допустимы?
Code
1
RewriteRule ^/([-_a-z0-9]+)\.html$ /view_post.php?id=$1
0
0 / 0 / 0
Регистрация: 08.04.2011
Сообщений: 5
09.04.2011, 22:13  [ТС]
У меня сейчас вот так написано
Code
1
2
3
4
RewriteEngine on
RewriteBase /
RewriteRule ^cat(.*)$ /view_cat.php?cat=$1
RewriteRule ^([-_a-z0-9]+)\.html$ /view_post.php?id=$1
Выдает "Неверный формат запроса! Проверьте URL!" в чем может быть причина?

Добавлено через 2 часа 47 минут
Спасибо за советы, но победить пока не смог, где-то туплю.
Если пишу так
Code
1
RewriteRule ^post-(.*)$ /view_post.php?id=$1
то ссылка формируется вида: mysite.ru/post-6 если пытаюсь post заменить на данные из базы данных, то у меня не проходит проверка на существование переменной id. Поэтому и пишет "Неверный формат запроса! Проверьте URL!" Сам же создал эту проверку. Вообщем, что делать, так и незнаю. пока остановился на рабочем варианте.
0
kukocapl
10.04.2011, 13:35
Здравствуйте.
Спрашивал в соседней теме, но ее похоже забросили, попробую спросить тут.
На сайте используется ЧПУ, все запросы направляются на главный индекс. А чтобы не плодить дубли, 301-м редиректом режу www. Вот строки из .htaccess, отвечающие за это:
Code
1
2
3
4
5
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
Также хочу все запросы без слэша на конце, редиректить на адрес со слешем, но сколько ни пытался не смог это сделать совместно с удалением www, у меня получается либо одно либо другое.
Прошу помощи.
Спасибо.
0 / 0 / 0
Регистрация: 08.04.2011
Сообщений: 5
13.04.2011, 14:29  [ТС]
Блин, не дает мне покоя этот ЧПУ, может кто-нибудь подскажет где я туплю?
Вот часть кода страницы где формируются ссылки на статьи определенной категории
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$result = mysql_query("SELECT id,title,description,date,author,hits,post_sef FROM data WHERE cat='$cat'", $db);
if (!$result)
{
  echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору @gmail.com. <br /> <strong>Код ошибки:</strong> </p>";
 exit(mysql_error());
}
if (mysql_num_rows($result)>0)
{
  $myrow = mysql_fetch_array($result);
do {
   printf ("<table align='center' class='post'>
                <tr>
                <td class='post_title'>
                <p class='post_name'><a href='post-%s'>%s</a></p>
                <p class='post_adds'>Автор: %s</p></td>
                </tr>
                <tr>
                <td class='post_text'>
                %s<p class='post_view'>Просмотров: %s</p>
                </td>
                </tr>
                </table><br />", 
       $myrow["id"], $myrow["title"], $myrow["author"], $myrow["description"], $myrow["hits"] );   
  }
    while($myrow = mysql_fetch_array($result));
}
else {
  echo "<p>Информация по запросу не может быть извлечена, в таблице нет записей.</p>";
  exit();
}
Как видим ссылка формируется вот этой строке <p class='post_name'><a href='post-%s'>%s</a></p> т.е. при выводе списка статей ссылки получаются вида mysait.ru/post-1 и т.д. , и когда мы кликаем на ссылку открывается сама статья, все хорошо все работает.
Но когда я подставляю в ссылку ЧПУ транслитом из базы, т.е. ссылка выглядит mysait.ru/chpu-dlya-saita вот код
PHP
1
2
3
4
5
6
7
8
9
10
<p class='post_name'><a href='%s'>%s</a></p>
                <p class='post_adds'>Автор: %s</p></td>
                </tr>
                <tr>
                <td class='post_text'>
                %s<p class='post_view'>Просмотров: %s</p>
                </td>
                </tr>
                </table><br />", 
       $myrow["post_sef"], $myrow["title"], $myrow["author"], $myrow["description"], $myrow["hits"] );
то когда кликаем по ссылке, выходит сообщение "Неверный формат запроса! Проверьте URL!", это сообщение берется из файла view_post.php вот код из файла
PHP
1
2
3
4
5
6
7
8
<? include ("blocks/bd.php"); 
if (isset($_GET['id'])){$id = $_GET['id'];}
if (!isset($id)) {$id = 1;}
 
/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
И не могу понять где копать.
Подскажите кто может.
Спасибо
0
v1u1
14.05.2011, 19:01
Помогите плз, есть статические и динамические страницы, для статических работает запись:

Bash
1
2
3
4
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^geografic/?$ geo.php [L]
Динамические в виде http://сайт.ru/ econom.php?r=1&p=1
т.е. : генерятся 4 страны ( от r=1 до r=4 ) где в каждой по 15 одинаковых характеристик (от p=1 до p=15 )
например: ссылки в виде http:// сайт.ru/econom.php?r=1&p=1 -для 1йстраны и 1 й характеристики, http:// сайт.ru/ econom.php?r=1&p=2 -для 1йстраны и 2 й характеристики и т.д.
по http:// сайт.ru/ econom.php?r=4&p=15 -для 4йстраны и 15 й характеристики.
Все эти ссылки размещены на одной странице Экономика -
для чпу нужно в виде http:// сайт.ru/ economics-egipt-naselenie ( где economics –по сути это econom.php?, egipt - одна из 4х стран (r), naselenie - одна из 15 характеристик(p)

С динамическими перепробовал – смог только сделать в цифрах:
Bash
1
RewriteRule ^ economics ([0-9]+)-([0-9]+)\.html$ econom.php?r=$1&p=$2
– работает и получается
economics 1-1.html (для 1й страны и 1й характеристики и т.д. для остальных,
но как сделать в виде: economics-egipt (это r)-naselenie(это p) без html не пойму , туплю – еще чайник . Помогите пожалуйста.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2011, 19:01
Помогаю со студенческими работами здесь

ЧПУ и GET (htaccess)
Есть ссылки вида /?page=works, нужно отображать их пользователю как /works. Как это сделать? Через htaccess прописать правильный...

ЧПУ .htaccess RewriteRule
Здравствуйте. Хочу сделать на сайте ЧПУ(Человеко Понятные Урлы))) Нужно преобразовать строку :...

ЧПУ через htaccess
Доброго времени суток. Я пытался убрать расширение php в конце файла но по не известной мне причине перестали передаваться русские слова...

.htaccess для ЧПУ
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.*$ index.php Если файлы лежат в корне, то...

Апаче, ЧПУ и htaccess
Доброго времени суток форумчане. Помогите настроить ЧПУ через файл htaccess . И самая большая проблема что в скрипте нету файла htaccess ,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru