Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: поддомен htaccess

 PHP.SU

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


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

> Описание: кто вообще хорошо разбирается в htaccess
criaton
Отправлено: 02 Декабря, 2011 - 12:36:03
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Доброго времени суток!

Есть страница вида site.ru/users/nick (при этом физически папок users и nick на хостинге нет, реализовано через htaccess)

Создан и привязан к основному сайту поддомен nick.site.ru

Как сделать так, чтобы данный поддомен отображал содержимое site.ru/users/nick?

Решение вида:

Код:

RewriteCond %{HTTP_HOST} ^([^\.]+)\.lince\.ru$ [NC]
RewriteCond %{HTTP_HOST} !^www\.lince\.ru$ [NC]
RewriteRule .* /index.php?show=users&id=%1 [L, QSA]

выдает ошибку 500 Internal Server Error

При этом так работает:

Код:

RewriteCond %{HTTP_HOST} ^([^\.]+)\.lince\.ru$ [NC]
RewriteCond %{HTTP_HOST} !^www\.lince\.ru$ [NC]
RewriteRule ^(.*)$ http://lince\[dot]ru/users/$1 [L,QSA]

Но делает простой редирект, а хотелось бы чтобы сохранялся именно вид nick.lince.ru

Кто с этим сталкивался? И кто вообще хорошо разбирается в htaccess?
 
 Top
Самогонщик
Отправлено: 02 Декабря, 2011 - 12:55:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




Я с этим сталкивался! но я плохо в этом разбираюсь.

Суть: после обработки происходит повторная обработка через хтаццесс и оно зацикливается.
Решение: добавьте в RewriteCond условие чтобы путь не начинался с /index.php
 
 Top
DlTA
Отправлено: 02 Декабря, 2011 - 12:58:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




RewriteEngine On
RewriteRule ([a-zA-Z0-9_]+)\.site\.ru$ site.ru/users/$1 [L]

(Отредактировано автором: 02 Декабря, 2011 - 13:01:46)

 
 Top
Самогонщик
Отправлено: 02 Декабря, 2011 - 13:03:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




А разве RewriteRule умеет работать с доменом? он же обрабатывает путь от текущей папки до указанного файла.
 
 Top
DlTA
Отправлено: 02 Декабря, 2011 - 13:04:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




нада попробывать
 
 Top
Самогонщик
Отправлено: 02 Декабря, 2011 - 13:07:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




Для реализации указанного автором функционала мне хватило прочтения вот этой статьи http://habrahabr[dot]ru/company/spri[dot][dot][dot]ost/blog/129560/

Но я помню только принцип собственной реализации (см. мой первый пост здесь). Если найдётся более красивое решение, я его обязательно использую Улыбка
 
 Top
criaton
Отправлено: 02 Декабря, 2011 - 13:20:09
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Спасибо но если физически папки нет на сервере

она создается динамически из php:

RewriteRule ^([^/]+)/$ index.php?shop_name_product=$1 [QSA,L]

как создать функцию через mod_rewrite для отображения:

динамическая папка.domain.ru
 
 Top
Самогонщик
Отправлено: 02 Декабря, 2011 - 13:31:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




criaton пишет:
Спасибо но если физически папки нет на сервере
Так и у меня нет Улыбка но корневая сайта есть и этого достаточно.

RewriteCond %{HTTP_HOST} ^nick\.lince\.ru$
RewriteCond %{REQUEST_URI} !^\\index.php #или так !^index.php с ходу не скажу
RewriteRule .* /index.php?show=users&id=%1 [L, QSA]
 
 Top
criaton
Отправлено: 02 Декабря, 2011 - 14:26:12
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Цитата:
RewriteCond %{HTTP_HOST} ^nick\.lince\.ru$


эта функция какую роль выполняет
(Добавление)
Цитата:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.ru$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(.*)\.domain\.ru(.*) /index.php?stat=$1
RewriteRule ^index.php\.(.*) /index.php?stat=$1


это работает, но графические элементы не отображаются, так как физически они находятся в папке основного домена
 
 Top
Самогонщик
Отправлено: 02 Декабря, 2011 - 20:31:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




вот мой
RewriteCond %{HTTP_HOST} ^(.*)\.ololo\.ru$ [NC]
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteCond %{REQUEST_URI} !^\/index.php [NC]
RewriteCond %{REQUEST_URI} !^\/hoho\/ [NC]
RewriteCond %{REQUEST_URI} !^\/upload\/ [NC]
RewriteRule ^(.*)$ hoho/%1/$1

даёт произвольное число поддоменов.

(Отредактировано автором: 02 Декабря, 2011 - 20:32:35)

 
 Top
criaton
Отправлено: 03 Декабря, 2011 - 05:02:35
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Спасибо,

Цитата:
RewriteRule ^([^/]+)-([^/]+).html$ index.php?shop_num_product=$1&shop_name_product=$2 [QSA,L]


здесь хотелось бы получить совет, знак -

тут ссылка не срабатывает, если в одном из значений ([^/]+) присутствует такой же знак,

например: les-gustoy

видимо команда не может правильно понять и перевести вместе работу 2-ух ([^/]+)-([^/]+)
 
 Top
Самогонщик
Отправлено: 03 Декабря, 2011 - 09:09:10
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




Я так понял просто существует неоднозначность как разбивать

вот сюда взгляни к примеру http://www[dot]regexpr[dot]ru/?pattern=%[dot][dot][dot]les-gu-stoy[dot]html

Совет таков, используй другой разделитель или делай les_gustoy, а потом в обработчике обратно замени на -
 
 Top
criaton
Отправлено: 03 Декабря, 2011 - 09:22:12
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Цитата:
les_gustoy


так и сделано, вот как его преобразовать в -
 
 Top
Самогонщик
Отправлено: 03 Декабря, 2011 - 10:01:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




Опиши подробнее, иначе я тебе порекомендую http://www.php.su/functions/?str_replace
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB