PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 11
remenikomer Отправлено: 13 Декабря, 2013 - 22:41:10 • Тема: Нужна помощь в htaccess • Форум: Регулярные выражения

Ответов: 4
Просмотров: 244
Deonis пишет:
remenikomer пишет:
в PHP не профи
Да, тогда вам будет достаточно проблематично писать свой роутер для такой задачи. А как для новичка, могу посоветовать сервис для генерирования htaccess правил. Хотя, без базовых знаний, вас и там будут ждать "подводные камни", но пробуйте.

Примерно понимаю htaccess, раньше пробовал изучать...
Генератор тоже выдает http://www.domain.com/firms/country/123.html
Если отключить значение area=country, то выходит так:
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?do=$1&area=country&areaid=$2 [L]

А как должны быть сформированы ссылки с get параметрами, чтобы получить в итоге нужные ЧПУ? Может от сюда начать?

Просто не доходит, как должен сервер понять, куда ему перенаправить, по какому адресу из этих:
/index.php?do=firms&area=country&areaid=123
/index.php?do=firms&area=region&areaid=543
/index.php?do=firms&area=city&areaid=878

при запросе /firms/moskva/. Ведь в этой строке кроме названия нет параметра, город это или страна...
remenikomer Отправлено: 13 Декабря, 2013 - 22:24:16 • Тема: Нужна помощь в htaccess • Форум: Регулярные выражения

Ответов: 4
Просмотров: 244
это еще нужно переварить Улыбка
но все же...
даже если я сделаю массив. В нем будет, например, russia. Как скрипт будет выводить россию? Как поймет, что area=country, что россия это не город? Страны, города, регионы в разных таблицах. Именно для этого и используется в GET area=country, типа, выводить информацию по выбранной стране, и чтобы искать в таблице регионов те, у которых страна = Россия.

дело еще в том, что:
1. CMS - DLE. Делаю для своего модуля. А ядро править не хотел бы..
2. далее, планирую делать субдомены (виртуальные), под города.

P.S. в PHP не профи... может чего не понял...
remenikomer Отправлено: 13 Декабря, 2013 - 21:44:04 • Тема: Нужна помощь в htaccess • Форум: Регулярные выражения

Ответов: 4
Просмотров: 244
Подскажите, пожалуйста, по проблеме...
нужно на сайте сделать ЧПУ.
Сейчас ссылки такие:
PHP:
скопировать код в буфер обмена
  1. /index.php?do=firms&area=country&areaid=123
  2. /index.php?do=firms&area=region&areaid=543
  3. /index.php?do=firms&area=city&areaid=878


Нужно сделать так:
/firms/russia/
/firms/moskovskaya-oblast/
/firms/moskva/

Я так понимаю, что так не сделать с такими ссылками, потому что areaid зависит от area.
И сервер не поймет как обрабатывать запрос /firms/russia/ - то ли это страна, то ли город...
Правильно думаю?

Можно конечно сделать так ЧПУ:
/firms/country/russia/
/firms/region/moskovskaya-oblast /
/firms/city/moskva/

Но это не бред...

Что можно сделать?
remenikomer Отправлено: 14 Января, 2013 - 12:04:40 • Тема: Форма заказа авиабилетов • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 61
ссылка на сайт не пашет
remenikomer Отправлено: 14 Января, 2013 - 12:03:12 • Тема: Проблемы с htaccess и ЧПУ • Форум: Вопросы новичков

Ответов: 11
Просмотров: 490
Подскажите как правильно писать нисколько условий RewriteCond для одного правила?
Пишу
PHP:
скопировать код в буфер обмена
  1.  
  2. RewriteCond %{http_host} ^(.+)\.site.ru [AND]
  3. RewriteCond %{REQUEST_URI} ^/news/ [nc]

И сервер выдает ошибку. Если использовать одно из двух условий, то они срабатывают. Параметр [and] ведь вроде так указывается. А не хочет срабатывать. Может чего не так делаю?
remenikomer Отправлено: 13 Января, 2013 - 20:41:10 • Тема: Проблемы с htaccess и ЧПУ • Форум: Вопросы новичков

Ответов: 11
Просмотров: 490
Вроде понял в чем проблема. Очищаю все настройки браузера (вообще все, куки, историю и т.п.) и все скидывается. Странно.
remenikomer Отправлено: 13 Января, 2013 - 12:19:47 • Тема: Проблемы с htaccess и ЧПУ • Форум: Вопросы новичков

Ответов: 11
Просмотров: 490
но это не то вроде как.
Мне не нужно править php, да и не могу я его исправить, т.к. он под zend. Мне лишь нужно избавить статьи в разных городах от поисковиков, чтобы не было дублей.
Поэтому нужно сделать 301 редирект. А т.к. php закодирован, значит можно только прописывать в htaccess - работать с тем, что есть.
все преобразования урл из динамики в статику сделаны (ЧПУ). Нужно только добавить исключения для разделов статей на всех субдоменах.
(Добавление)
кэш то у htaccess есть какой-то? Его как-то можно обновлять? А не то один субдомен редиректиться до сих пор, хотя в htaccess давно все правила удалил
remenikomer Отправлено: 13 Января, 2013 - 12:04:46 • Тема: Проблемы с htaccess и ЧПУ • Форум: Вопросы новичков

Ответов: 11
Просмотров: 490
esterio пишет:
RewriteRule ^(.*)$ http://site[dot]ru$1 [R=302,L]
Неверно, может так
RewriteRule .* http://site[dot]ru [L]

это куда, вместо моих строк? А как же раздел статей?

esterio пишет:
Зачем 302 ответ. Если будет поисковый бот, то ему не нужно знать что у вас там куда перенаправляеться

Как раз это для поискового бота. Чтобы убрать дубли со всех городов и сделать их только для основного.
Вообще-то я делаю 301 редирект. Но т.к. у меня непонятный кэш какой-то, то я попробовал 302 редирект (временный).
Сейчас некоторые урл не изменяются даже при смене htaccess. Его меняю, а урл как были старые, так и остаются и не меняются никак. Скинуть чего - не знаю.
remenikomer Отправлено: 13 Января, 2013 - 11:39:19 • Тема: Проблемы с htaccess и ЧПУ • Форум: Вопросы новичков

Ответов: 11
Просмотров: 490
esterio пишет:
1. все запросы обрбляет один файл index.php
2. пропускаются файлы которые существуют и директории
3. все сабдомены должны иметь в качестве documentroot тодну папку

я с полу слова не могу понять... я php знаю, не профи, но знаю. А htaccess не знаю. Только вот сейчас стал изучать, т.к. столкнулся с необходимостью.
Субдомены - виртуальные.
Я сделал так:
PHP:
скопировать код в буфер обмена
  1. RewriteCond %{http_host} ^(.+)\.site.ru [nc]
  2. RewriteRule ^(.*)$ http://site.ru$1 [R=302,L]

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


Можно как-нибудь понятнее?
remenikomer Отправлено: 13 Января, 2013 - 11:08:41 • Тема: Проблемы с htaccess и ЧПУ • Форум: Вопросы новичков

Ответов: 11
Просмотров: 490
esterio пишет:
Ето называетьсяфронт контролером
Вот здесь я уже писал как такое делать
http://forum.php.su/topic.php?forum=71&topic=8633&postid=1358032705#1358032705

спасибо конечно, но я ничего не понял из приведенного примера.
Что нужно сделать, чтобы кэш этот обновлять при необходимости или на время экспериментов?
А еще лучше, помогите, пожалуйста, сформировать нужные ЧПУ.

Как и писал выше, нужно при запросе каталога статей отрезать субдомены (это разные города) и направлять в каталог статей на основном домене.
Есть правила для создания ЧПУ из динамических урл. Поэтому новые правила нужно писать вверху кода и с окончательным параметром (указать L, вроде). А также не знаю, какие правила писать, то ли уже готовые ЧПУ урл перенаправлять, то ли динамические с параметрами $1, $2 и т.д. (в 1-м посте пример правил указал)
Сделал:
PHP:
скопировать код в буфер обмена
  1.  
  2. RewriteCond %{http_host} ^(.+)\.site.ru/articles/ [nc]
  3. RewriteRule ^(.*)$ http://site.ru/articles/$1 [R=302,L]
  4.  


Но ничего не работает. Получилось только сделать для ссылки раздела. А если обращаться к категории статей или просмотру статьи, то правило не работает. Пробовал и условия убирать, менять, ничего не получается.

Вот что еще для правил есть:
PHP:
скопировать код в буфер обмена
  1.  
  2. RewriteRule ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ $1/show.php?itemid=$2&page=$4
  3. RewriteRule ^(.*)/show/([0-9]+)/([0-9]+)?([/])?$ $1/show.php?itemid=$2&page=$3
  4. RewriteRule ^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ $1/list.php?catid=$2&page=$4
  5.  
remenikomer Отправлено: 13 Января, 2013 - 10:11:40 • Тема: Проблемы с htaccess и ЧПУ • Форум: Вопросы новичков

Ответов: 11
Просмотров: 490
Есть файл с правилами, типа:
RewriteRule ^(.*)/list/([0-9]+)/([0-9]+)?([/])?$ $1/list.php?catid=$2&page=$3

Хочу перенаправить со всех субдоменов, при условии, что путь с субдоменом: subdomen.site.ru/articles/
А направить на без субдомена (отрезать его).

Но сейчас проблема в другом - что бы не исправлял в htaccess, ничего не происходит. Как будто какой-то кэш используется. Писал правила с 301 редиректом. Может он что-то сделал?
Как заставить использовать измененных htaccess?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB