htaccess Rewrite

Independence
На сайте с 29.10.2005
Offline
428
709

Есть несколько доменов, которые привязаны к 1. Нужно некоторые домены првязать к одной папке, а некоторые к разным. Подскажите, правильно или нет (обратите внимание на буквы c и k в - вот что меня смущает еще):

1. taracan.info и tarakan.info к папке tarakan

2. topstop.com к папке top

===

RewriteEngine on

RewriteRule ^tarakan/ - [last]

RewriteCond %{HTTP_HOST} (www.)?taracan.info [nocase]

RewriteRule (.*) tarakan/$1 [last]

RewriteRule ^tarakan/ - [last]

RewriteCond %{HTTP_HOST} (www.)?tarakan.info [nocase]

RewriteRule (.*) tarakan/$1 [last]

RewriteRule ^top/ - [last]

RewriteCond %{HTTP_HOST} (www.)?topstop.com [nocase]

RewriteRule (.*) top/$1 [last]

===

UA
На сайте с 19.06.2006
Offline
100
#1

То, что вы делаете, называется "лечить гланды через задницу".

<VirtualHost>

ServerName tarakan.info

ServerAlias taracan.info

DocumentRoot /var/www/tarakan

</VirtualHost>

<VirtualHost>

ServerName topstop.com

DocumentRoot /var/www/top

</VirtualHost>

Independence
На сайте с 29.10.2005
Offline
428
#2

У меня виртуальный хостинг, я не могу править конфиги апача..

DyaDya
На сайте с 11.04.2007
Offline
147
#3
Ugnich Anton:
То, что вы делаете, называется "лечить гланды через задницу".

<VirtualHost>
ServerName tarakan.info
ServerAlias taracan.info
DocumentRoot /var/www/tarakan
</VirtualHost>

<VirtualHost>
ServerName topstop.com
DocumentRoot /var/www/top
</VirtualHost>

Думаю, далеко не на каждом хостинге позволяют так делать ;).

А вот возможность поддержки, например, того же mod_rewrite и управление через .htaccess чаще встречается у хостинг-провайдеров. (по собственному ИМХО, может у кого другая статистика на этот счет)

Independence, а почему вас смущает именно буква c и k. Вы думаете они как-то по другому должны обрабатываться? ;)

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
Independence
На сайте с 29.10.2005
Offline
428
#4

Я хотел уточнить, правильно ли я записал..

А смущает меня эта строка в первую очередь: RewriteRule ^tarakan/ - [last] , где в обоих случаях я прописал k, и зачем она нужна..

Shtogrin
На сайте с 02.11.2006
Offline
95
#5

RewriteEngine on

RewriteRule ^tarakan/ - [L]
RewriteRule ^top/ - [L]

RewriteCond %{HTTP_HOST} (www.)?taracan.info [NC]
RewriteRule (.*) tarakan/$1 [L]

RewriteCond %{HTTP_HOST} (www.)?tarakan.info [NC]
RewriteRule (.*) tarakan/$1 [L]

RewriteCond %{HTTP_HOST} (www.)?topstop.com [NC]
RewriteRule (.*) top/$1 [L]

Достаточно одной строки. Они предотвращают зацикливание правил. Проблема с такими виртуальными хостами сложнее, если у вас скрипты используют DOCUMENT_ROOT, для всех хостов он будет одинаковый.

Еще можно убрать зацикливание с помощью переменной среды REDIRECT_STATUS.

RewriteEngine on

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} (www.)?taracan.info [NC]
RewriteRule (.*) tarakan/$1 [L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} (www.)?tarakan.info [NC]
RewriteRule (.*) tarakan/$1 [L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} (www.)?topstop.com [NC]
RewriteRule (.*) top/$1 [L]
www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Independence
На сайте с 29.10.2005
Offline
428
#6
Shtogrin:
RewriteEngine on


RewriteRule ^tarakan/ - [L]
RewriteRule ^top/ - [L]

RewriteCond %{HTTP_HOST} (www.)?taracan.info [NC]
RewriteRule (.*) tarakan/$1 [L]

RewriteCond %{HTTP_HOST} (www.)?tarakan.info [NC]
RewriteRule (.*) tarakan/$1 [L]

RewriteCond %{HTTP_HOST} (www.)?topstop.com [NC]
RewriteRule (.*) top/$1 [L]


Достаточно одной строки. Они предотвращают зацикливание правил. Проблема с такими виртуальными хостами сложнее, если у вас скрипты используют DOCUMENT_ROOT, для всех хостов он будет одинаковый.

Этот вариант видится более оптимальным, так как проще прописывается, если доменов больше десятка, к примеру. Как я понял, записи этого типа

RewriteRule ^tarakan/ - [L]

RewriteRule ^top/ - [L]

могут находиться списком в самом начале htaccess и все будет нормально работать.

Что касается скриптов, то вы имеете ввиду, что в скрипте прописана переменная с адресом папки, где рысположен скрипт или источник данных, что-то типа

$directoryofsource="ENV{DOCUMENT_ROOT}/abcd.pl"

Или что-то другое?

Shtogrin
На сайте с 02.11.2006
Offline
95
#7
Independence:

Что касается скриптов, то вы имеете ввиду, что в скрипте прописана переменная с адресом папки, где рысположен скрипт или источник данных, что-то типа
$directoryofsource="ENV{DOCUMENT_ROOT}/abcd.pl"

Или что-то другое?

Да. Для всех таких виртуальных хостов значение ENV{DOCUMENT_ROOT} будет одинаковое и будет указывать на корневой каталог.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий