Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное выражение в mod rewrite, Возможно ли как-то реализовать? 
:(
    Опции темы
AlikZP
Дата 12.6.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.1.2009

Репутация: нет
Всего: нет



Не знаю, возможно ли такое, вроде в поиске не нашел.

Задача:

Ссылки сайта имеют вид  по типу: /theme/main/table/cd/id/100/
Если расшифровать, то получится: переменная/значение/переменная/значение/переменная/значение и так далее.
Этих переменных может быть много, все они разные.

Файл .htaccess в данный момент содержит только одну строку: ErrorDocument 404 index.php
То есть все такие УРЛы идут на index.php, который парсит строку с параметрами и в зависимости от этого уже показывает разный контент.

Но все полученные таким образом страницы не очень любит Яша, тк они проходят через 404.

Вопрос:

Можно ли с помощью .htaccess и mod rewrite как-то парсить эти переменные, чтобы получать
index.php?theme=main&table=cd&id=100
причем что переменных может быть любое количество, расположены могут быть в любом порядке.

Видимо тут необходимо как-то задать регулярное выражение, по типу - n-й параметр - переменная, n+1 параметр - ее значение, n=1..........

Но че-то у меня знаний не хватает на такое.
Кто нибудь может подсказать или хотябы в нужное русло направить?

ПС. Надеюсь не сильно сумбурно объяснил...

Заранее благодарю всех откликнувшихся.
PM MAIL   Вверх
bars80080
Дата 12.6.2009, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



меня всегда интересовал вопрос, а зачем настраивать .htaccess на расшифровывание урла. почему бы просто не адресовать всё на index.php, а там уже скрипт разберёт, что за адрес был и как его интерпретировать

Код

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

PM MAIL WWW   Вверх
icewind
Дата 12.6.2009, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Код

RewriteEngine On
RewriteBase /
RewriteRule ^category/article([0-9]*)/ /index.php?section=category&id=$1

Болше инфы здесь и здесь


--------------------
user posted image
PM MAIL Skype   Вверх
AlikZP
Дата 12.6.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.1.2009

Репутация: нет
Всего: нет



2icewind
Не совсем так, насколько я понял
мне нужно примерно:
Код

RewriteRule ТутКодКоторогоЯНеПридумал index.php?parametr1=$1&parametr2=$2&...&parametrN=$N


Примем параметров может быть неограниченное количество и их значения ( имена ) я тоже должен получать. Они могут быть абсолютно не предсказуемыми.

То есть даже так:
Код

RewriteRule ТутКодКоторогоЯНеПридумал index.php?$1=$2&$3=$4&...&$N=$(N+1)


2bars80080
А как относится к этому Яндекс? В моем случае он неочень хорошо воспринимает инициирование 404-й ошибки.

Это сообщение отредактировал(а) AlikZP - 12.6.2009, 23:04
PM MAIL   Вверх
bars80080
Дата 13.6.2009, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(AlikZP @  12.6.2009,  23:03 Найти цитируемый пост)
А как относится к этому Яндекс? В моем случае он неочень хорошо воспринимает инициирование 404-й ошибки.

не спрашивал, но у меня нет никакой 404-ой ошибки.
есть ссылка, он переходит по ней, а там открывается страница. что он может ещё увидеть, кроме страницы, которую мы ему отдаём?
PM MAIL WWW   Вверх
icewind
Дата 13.6.2009, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Так как тебе нужно в .htaccess скорее всего не напишешь. Сделай так, как сказал  bars80080
Код

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]


Потом в файле index.php распарси $_SERVER['QUERY_STRING']


--------------------
user posted image
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0810 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.