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

Файл .htaccess и переименование товаров

15.08.2016, 08:48. Показов 1459. Ответов 4

Студворк — интернет-сервис помощи студентам
Доброе время суток.

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

в htaccess:
Bash
1
2
3
4
5
6
RewriteEngine On
#Options +FollowSymlinks
RewriteCond   %{REQUEST_FILENAME} !-d
RewriteCond   %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.php [QSA,L]
RewriteRule ^content/([0-9]+)-([a-z0-9\-]+)/?$ content.php?id=$1 [L]
в html:
HTML5
1
<a href="content/'.$res_query["products_id"].'-'.ftranslite($res_query["title"]).'/" >ПОДРОБНЕЕ</a>

и функция траслита:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function ftranslite($name){
 
 $name=preg_replace("/[\s+\.\,]/","-",$name);
 $name=preg_replace("/[\"\'\!\?\(\)\:\$\%]/","",$name); 
 
 static $trans= array(
 'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'e', 'ж'=>'zh', 'з'=>'z',
 'и'=>'i', 'й'=>'y', 'к'=>'k', 'л'=>'l', 'м'=>'m', 'н'=>'n', 'о'=>'o', 'п'=>'p',
 'р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u', 'ф'=>'f', 'ы'=>'i', 'э'=>'e', 'А'=>'A',
 'Б'=>'B', 'В'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ж'=>'ZH', 'З'=>'Z', 'И'=>'I',
 'Й'=>'Y', 'К'=>'K', 'Л'=>'L', 'М'=>'M', 'Н'=>'N', 'О'=>'O', 'П'=>'P', 'Р'=>'R',
 'С'=>'S', 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Ы'=>'I', 'Э'=>'E', 'ё'=>"yo", 'х'=>"h",
 'ц'=>"ts", 'ч'=>"ch", 'ш'=>"sh", 'щ'=>"shch", 'ъ'=>"", 'ь'=>"", 'ю'=>"yu", 'я'=>"ya",
 'Ё'=>"YO", 'Х'=>"H", 'Ц'=>"TS", 'Ч'=>"CH", 'Ш'=>"SH", 'Щ'=>"SHCH", 'Ъ'=>"", 'Ь'=>"",
 'Ю'=>"YU", 'Я'=>"YA"
 );
 
 $strstring = strtr($name, $trans) ;
 
 return strtolower($strstring) ;
 }

Создается ссылка хорошо, но дело, мне кажется в .htaccess, т.к. по-просту не находит.
Могу добавить, что первое правило, убирающее .php у файлов работает.
Проверяю на localhost
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.08.2016, 08:48
Ответы с готовыми решениями:

Файл .htaccess
Помогите пожалуйста, настроил файл .htaccess. Вот его 5 строк: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond...

mod_rewrite и файл .htaccess
Уважаемые хорошие дядьки, помогите пожалуйста. Есть скрипт который выводит значения GET переменных Х1,У1,З1. Как настроить апач таким...

.htaccess что за файл и для чего он?
для чего нужен этот файл и для чего его используют? принципиально ли научиться им пользоваться, если да, то где?

4
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
15.08.2016, 09:01
Лучший ответ Сообщение было отмечено Aidera как решение

Решение

Aidera, вроде бы надо так
Bash
1
2
3
4
5
6
7
8
9
RewriteEngine On
 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^!(content\/.*)$ $1.php [QSA,L]
 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^content\/([0-9]+)-([a-z0-9\-]+)/?$ content.php?id=$1 [L]
1
 Аватар для Aidera
1 / 1 / 0
Регистрация: 29.07.2015
Сообщений: 86
15.08.2016, 09:40  [ТС]
Cra3y, Благодарю за ответ
Все заработало, разъединив оба правила и изменив первое

Добавлено через 5 минут
Cra3y,
но только как сделать правило RewriteRule ^(.*)$ $1.php [QSA,L] (убрать .php из всех оставшихся файлов)?
Теперь при его добавлении,
RewriteRule ^!(content\/.*)$ $1.php [QSA,L]
RewriteRule ^content\/([0-9]+)-([a-z0-9\-]+)/?$ content.php?id=$1 [L]
не работают

Добавлено через 30 минут
Ответ нашелся.
Данное правило можно заменить, получив в итоге
Bash
1
2
3
4
5
6
7
RewriteEngine On
#Options +FollowSymlinks
RewriteCond   %{REQUEST_FILENAME} !-d
RewriteCond   %{REQUEST_FILENAME} !-f
RewriteRule ^(\w+)$ $1.php [NC]
RewriteRule ^!(content\/.*)$ $1.php [QSA,L]
RewriteRule ^content\/([0-9]+)-([a-z0-9\-]+)/?$ content.php?id=$1 [L]
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
15.08.2016, 09:57
Aidera, я бы на вашем месте применил Front Controller(aka единая точка входа)
с ним правила mod_rewrite сокращаются до
Bash
1
2
3
4
5
RewriteEngine On
 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
а остальные файлы подключаются внутри в зависимости от результата разбора запроса
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
15.08.2016, 10:02
Цитата Сообщение от Aidera
в htaccess:
Правила применяются последовательно одно за другим в том порядке, в котором они записаны.
В первом правиле указан шаблон ^(.*)$, который совпадает с любой строкой и его нужно поставить уже после правила с шаблоном ^content/([0-9]+)-([a-z0-9\-]+)/?$.

Bash
1
2
3
4
5
6
7
8
RewriteEngine On
#Options +FollowSymlinks
 
RewriteRule ^content/([0-9]+)-([a-z0-9\-]+)/?$ content.php?id=$1 [L]
 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.php [QSA,L]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.08.2016, 10:02
Помогаю со студенческими работами здесь

Запретить открывать файл через .htaccess
Возможно запретить открывать файлы по адресу file/, но при этом чтобы можно было работать с ним через &lt;img src='/file/picture.jpg'&gt;? ...

Htaccess: файл и папка с одинаковыми именами
Здравствуйте! Помогите, пожалуйста, разобраться. Задача, казалось бы, простейшая - убрать .php из адресной строки. В сети нашлась куча...

Как спрятать файл .htaccess от запросов
Здравствуйте друзья! Возник такой вопрос. Есть файл htaccess, есть роутинг, при вбивании в адресную строку, все что нет в условиях...

Перенаправление запросов через .htaccess на один файл
Господа форумчане! Прошу помочь в решении воароса: Можно-ли сделать любой запрос средствами (.htaccess) через один файл, а именно...

Файл .htaccess И Пароль На Скачивание Всех Файлов
Здравствуйте. Настроил с помощью файла .htaccess защиту на скачивание *Любых* файлов в конкретном каталоге. Все работает, при...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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