Перейти к содержимому



Помогите с регуляркой (валидатор для субдоменов)

#1

Поделиться сообщением #1



winston3d

winston3d
  • Неактивные
  • 135 сообщений
  • Репутация: 2
0

Отправлено 30 Апрель 2014 - 21:58

Всем привет!
Такая проблемка, при создании субдомена указал * (звёздочку) что бы было неограниченное количество субдоменов, которые не нужно отдельно создавать. Но это повлекло за собой ряд проблем: субдомен может иметь неограниченное количество точек, может иметь тире в конце и несколько подряд.
Короче, нужно написать валидатор регуляркой, что бы тире могло стоять только по середине букв и цифр и точек быть не могло. В случае нарушения правил что бы перекидывало на основной домен.
У меня вообще всё плохо с регулярками и выходит что-то несуразное:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(([a-Z0-9]+[-]+[a-Z0-9])|([a-Z0-9]))+.site.com$
RewriteRule http://site.com/
Эта штука вообще не работает, 500 выдаёт. Помогите пожалуйста..

 

 

Сообщение отредактировал winston3d: 01 Май 2014 - 11:56

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Помогите с регулярным выражением
  2. Не распознается спецсимвол в регулярке
  3. Проверка расширения файла регуляркой
  4. Помогите с регуляркой для RewriteRule
  5. Помогите с привязкой parser к шаблону

#2

Поделиться сообщением #2



moving

moving
  • Пользователь
  • 423 сообщений
  • Репутация: 28

Отправлено 01 Май 2014 - 07:21

Почитай здесь, много полезной информации по htaccess, должно помочь


  • 0

#3

Поделиться сообщением #3



winston3d

winston3d
    Topic Starter
  • Неактивные
  • 135 сообщений
  • Репутация: 2

Отправлено 01 Май 2014 - 13:34

Спасибо. Я кстати уже почти решил проблему:
 

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?([a-z0-9]+)([-]?+[a-z0-9]+)*.site.com$ [NC]
RewriteRule (.*) http://site.com/ [R=301,L]

Но вот проблема, при редиректе на основной домен сохраняется GET. Как это можно обойти, не подскажете?


  • 0

#4

Поделиться сообщением #4



Ixman

Ixman
  • Пользователь PRO
  • 2 670 сообщений
  • Репутация: 641

Отправлено 01 Май 2014 - 13:58

RewriteRule (.*) http://site.com/ [R=301,L]


попробуйте эту строку модифицировать, мб так
 

RewriteRule / http://site.com/ [R=301,L]

  • 0


#5

Поделиться сообщением #5



winston3d

winston3d
    Topic Starter
  • Неактивные
  • 135 сообщений
  • Репутация: 2

Отправлено 01 Май 2014 - 15:21

К сожалению вообще перестаёт работать


  • 0

#6

Поделиться сообщением #6



winston3d

winston3d
    Topic Starter
  • Неактивные
  • 135 сообщений
  • Репутация: 2

Отправлено 01 Май 2014 - 15:42

Нужно было просто ? в конце строки поставить, вот так

RewriteRule (.*) http://site.com/? [R=301,L]

  • 0


Оформление форума – IPBSkins.ru