Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Как сделать редирект в другую папку?
цитата
19/05/10 в 00:43
 ImageMaker
Как с помощью .htaccess и GeoIP сделать редирект русских IP в другую папку?
Т.е. сёрфер с русским IP редиректится на домен.ком/ру/, а все остальные остаются на домен.ком?
цитата
19/05/10 в 02:01
 x123p
Вроде так:
Код:
rewriteEngine On
rewriteCond %{ENV:geoip_COUNTRY_CODE} ^RU$
rewriteRule ^(.*) http://www.example.com/ru [R=301,L]
цитата
19/05/10 в 12:23
 ImageMaker
Не, чё-то не получается так icon_sad.gif
Фаерфокс говорит:
_______________________________________________________________________
Неверное перенаправление на странице
Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
_______________________________________________________________________

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

Есть другие варианты?
цитата
19/05/10 в 12:29
 Dr.Syshalt
Одной строки не хватает - чтобы не редиректило из /ru
Ну и код 301 - это зря, вообще-то.

В итоге будет

Код:
rewriteEngine On
RewriteCond %{REQUEST_URI} !^/ru
rewriteCond %{ENV:geoip_COUNTRY_CODE} ^RU$
rewriteRule ^(.*) http://www.example.com/ru [R,L]
цитата
19/05/10 в 13:09
 ImageMaker
Вроде работает, но у меня в .htaccess'e ещё есть такой код от вордпресса:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

По отдельности эти коды работают,
вместе они никак не хотят работать icon_sad.gif
Как поправить?

И ещё вопрос, что б не начинать новый топик - что вставить в .htaccess, чтобы при ошибке авторизации с помощью .htpasswd, серфера перекидывало в директорию /join на этом же домене?

За правильный ответ +8 icon_smile.gif
цитата
19/05/10 в 16:20
 leroy_17
если дира куда перекидываешь отдельнаяя то можно в ней кинуть htacess в котором прописать
rewriteEngine Off

и все дальше этой диры он не перекинет,

по джоин там надо прописать

ErrorDocument 403 /join/

вроде так
цитата
19/05/10 в 16:25
 x123p
если в хтаксесс написать:
Код:
<IfModule mod_auth.c>
Order Deny,Allow
Deny from All
AuthType Basic
AuthName "Protected By BlaBla"
AuthUserFile /.htpasswd
Require user admin
</IfModule>

ErrorDocument 403 /join/

Блин, опоздал потому что тестил :-(
цитата
19/05/10 в 17:17
 ImageMaker
не работает icon_sad.gif
пробовал прописывать ErrorDocument 403 /join/ в .htacess в корне и директории members - даёт такой результат:
Authorization Required
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.
причём ошибку не 403, а 401 показывает
если пишу ЕррорДокумент 401, то без запроса логина и пароля сразу перекидывает в другую директорию.
Как поправить?
И ещё, у меня на сервере нет физической директории /join и /ru, они формируются с помощью вордресса.
Как поступить в этом случае, что б не зацикливалось?

PS Пока ответившим по +3 ;)
цитата
19/05/10 в 21:39
 ImageMaker
Никто не знает? icon_sad.gif
Может есть какой-нить плагин для вордпреса, который редиректит серферов в зависимости от страны проживания?
цитата
19/05/10 в 23:37
 CABMIT
А если вот так?
Код:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/ru
rewriteCond %{ENV:geoip_COUNTRY_CODE} ^RU$
RewriteRule .* /ru
#(тут можно еще попробовать добавить [N])
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Все остальное из .htaccess убрать, там 2 раза повторяется одно и то же
цитата
20/05/10 в 00:08
 ImageMaker
CABMIT:
Этот вариант тоже не подходит icon_sad.gif
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.

если добавляю [N] - ваще зацикливается....

Есть другие предложения?
цитата
20/05/10 в 00:23
 ImageMaker
Цитата:
#(тут можно еще попробовать добавить [N]


добавил....

сервер упал icon_sad.gif
цитата
20/05/10 в 00:28
 raider
2 ImageMaker тут тебе написали 2 рабочих скрипта - судя по всему у тебя траблы с хостом - пинай саппорт
ошибки указаной в последнем топике - быть не должно
цитата
20/05/10 в 00:36
 ImageMaker
Тем не менее - ссылки в моей сигнатуре не работают после этих экспериментовicon_sad.gif
цитата
20/05/10 в 00:43
 ImageMaker
Вроде наладилось с хостом icon_smile.gif
Уже боюсь дальше экспериментировать ;)
цитата
20/05/10 в 15:34
 Lazy Lion
не бойся.
Ты ж за хост платишь деньги.
Не попробовав - не узнаешь
цитата
20/05/10 в 16:11
 ImageMaker
Это понятно, но когда сервер падает - не очень приятно, т.к. он деньги приносит, когда в рабочем состоянии ;)
цитата
21/05/10 в 11:04
 leroy_17
на крайняк можешь сам скрипт WP подправить и редиректить через него русских
цитата
21/05/10 в 11:12
 ImageMaker
К сожалению, я не программер, поэтому не знаю, как это сделать icon_sad.gif
Просил, как это сделать через .htaccess, но предложенные способы не подошли, т.к. физически директории /join не существует, поэтому перенаправление зацикливается icon_sad.gif
Может есть другие способы?


Эта страница в полной версии