SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Помощ за mod_rewrite

nf1

New member
Имам регистриран 3 домейна - neshto.com neshto.org и neshto.net
Всички dns записи сочат към едно ip където ги "посреща" apache с vhost. В .htaccess искам да направя така, че:

1. kakavto-i-da-e-string.neshto.kakvo-i-da-e-razshirenie да сочи към neshto.com в kakavto-i-da-e-string включвам и www.
2. neshto.org да сочи към neshto.com
3. neshto.net и neshto.net да сочи към neshto.com
(според мен 1 включва в себе си и 2 и 3 но го пиша заради конкретната ситуация)

Това което пробвам е:
RewriteCond %{HTTP_HOST} ^(.*)\.neshto\.(.*)$ [NC]
RewriteRule ^(.*)$ http://neshto.com/$1 [L,R=301]

този модел работи за kakavto-i-da-e-string.neshto.kakvo-i-da-e-razshirenie да сочи към neshto.com но не работи за neshto.org и neshto.net да сочат към neshto.com

Къде бъркам?
 
Последно редактирано:
Re: Помощ за mod_rewrite

Изясни какво значи "не работи за neshto.org и neshto.net да сочаъ към neshto.com". Когато имаш 3 ниво поддомейн работи, а само второ не бачка? Предполагам че е така и затова преправяш
RewriteCond %{HTTP_HOST} ^(.*)\.neshto\.(.*)$ [NC]
на
RewriteCond %{HTTP_HOST} ^(.*)?neshto\.(.*)$ [NC]
 
Re: Помощ за mod_rewrite

По този начин ще се получи redirect loop (тествах го)
Странно, при мен си бачка "на шест". Мисля, че нещо друго създава луупа. Ето ти пример
Код:
RewriteCond %{HTTP_HOST} ^(.*)?xoopsbg.org [NC]
RewriteRule ^(.*)$ http://www.rent.bg/ [R=302,L]
Пробвай с кой да е поддомейн на ксуупсбг.орг, например alabala.xoopsbg.org. Т.е. при теб трябва да стане
Код:
RewriteCond %{HTTP_HOST} ^(.*)?neshto\.(.*)$ [NC]
RewriteRule ^(.*)$ http://neshto.com/$1 [L,R=301]
Ако така ти дава луп, пусни целия хтаццесс, може и на лични.
 
Re: Помощ за mod_rewrite

Код:
<IfModule mod_rewrite.c>
  RewriteEngine on

   RewriteCond %{HTTP_HOST} ^(.*)\.neshto\.(.*)$ [NC]
   RewriteRule ^(.*)$ http://neshto.com/$1 [L,R=301]

   RewriteCond %{HTTP_HOST} ^(.*)\.other-domain\.(.*)$ [NC]
   RewriteRule ^(.*)$ http://www.other-domain.com/$1 [L,R=301]

  # Rewrite current-style URLs of the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

Това е .htaccess-a свързан с mod_rewrite. Второто правило което е за other-domain е за да ми мачне на wildcard всички поддомейни на друг домейн който се хоства на същата машина - той си работи. Третото правило ми е за CMS-a. При теб наистина работи.

При мен ако напиша http://darabara2chadara.neshto.org също работи, но не работи само с http://neshto.org, докато при теб видях, че работи и само с xoopsbg.org

Ще ти пусна истинския домейн на neshto.com на лично да не си помисли някой, че правя реклама или нещо подобно.

Странното е, че пробвах и с:

Код:
   RewriteCond %{HTTP_HOST} ^(.*)\.neshto\.(.*)$ [NC,OR]
   RewriteCond %{HTTP_HOST} ^neshto\.(.*)$ [NC]
   RewriteRule ^(.*)$ http://neshto.com/$1 [L,R=301]
но пак ми даде loop
 
Re: Помощ за mod_rewrite

Реших проблема по не особено елегантен начин, но поне работи:
Код:
   RewriteCond %{HTTP_HOST} ^(.*)\.neshto\.(.*)$ [NC,OR]
   RewriteCond %{HTTP_HOST} ^neshto\.org$ [NC,OR]
   RewriteCond %{HTTP_HOST} ^neshto\.net$ [NC]
   RewriteRule ^(.*)$ http://neshto.com/$1 [L,R=301]

Сега всички заявки се пренаписват за neshto.com
 
Re: Помощ за mod_rewrite

Сещам се, че лупа идва от това
Код:
   RewriteCond %{HTTP_HOST} ^neshto\.(.*)$ [NC]
   RewriteRule ^(.*)$ http://neshto.com/$1 [L,R=301]
, защото проверката на neshto\.(.*) може обхваща и neshto.com и става мамата си трака. Така че, това, което си измайсторил си е ОК. Можеш да съкратиш един ред, но едва ли си заслужава.
 
Re: Помощ за mod_rewrite

Ще ти трябват 2 правила, така или иначе, едно за събдомейните, друго за .орг и .нет

Код:
   RewriteCond %{HTTP_HOST} ^(.*)\.neshto\.(com|net|org)$ [NC,OR]
   RewriteCond %{HTTP_HOST} ^http://neshto\.(org|net)$ [NC]
   RewriteRule ^(.*)$ http://neshto.com/ [L,R=301]

Променливата $1 в случаят не ти трябва предполагам? Към neshto.com трябва ли да има и някаво URI, т.е. ако е testdomain.neshto.com => neshto.com/testdomain ?
 
Последно редактирано:

Горе