Как перенаправить (переписать) URL?

Фанат

oncle terrible
Команда форума
header("Location: http://somesite.com/rubr.php?country=ru");

-~{}~ 14.11.05 23:53:

какой вопрос - такой и ответ
 

Иван 76

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

Фанат

oncle terrible
Команда форума
if (!isset($_GET['country'])) $country="ru";

Ваня. Это второй ответ и предпоследний.
если ты не соберёшься с силами по-человечески объяснить, что тебе надо, то придётся думать самостоятельно.
 

Иван 76

Новичок
>Ваня. Это второй ответ и предпоследний.
>если ты не соберёшься с силами по-человечески объяснить, что тебе надо, то придётся думать самостоятельно.

Суть вопроса следующая.
Есть задумка расширить зону охвата портала на другие страны.
То есть скрипт будет один, а базы данных - разные.
Руководствоваться, при выборе БД, скрипт будет переменной country. Самый простой вариант - это прописывать адреса как http://somesite.com/rubr.php?country=ru ,
или http://somesite.com/rubr.php?country=ua и т.д.
Но хочется облагородить адреса, и $country спрятать в строку типа http://somesite.com/ru/rubr.php
Слышал, что это, каким - то образом делается через mod_rewrite. Вот только не знаю, прокатит ли такой вариант в моем случае, ведь сервер принадлежит хостеру, и я всего-навсего покупаю хостинг.
Нужно, чтоб адрес был
http://somesite.com/ru/rubr.php
(на несуществующую папку) , но пользователь попадал на существующий файл
http://somesite.com/rubr.php?country=ru , и адрес в браузере посетителя не менялся.
Еще знаю, что каким-то образом, это делается при помощи выключения safe mode. Точно не знаю.
Если кто прольет свет, буду признателен.
 

realman

Новичок
если ты покупаешь хостинг, то у тебя, наверное, есть поддержка .htaccess.

в файл .htaccess напиши:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteRule ^([a-z]+)/rubr.php$ /rubr.php?country=$1
 

Иван 76

Новичок
Спасибо Всем. Информации очень много. Нужно переварить.

-~{}~ 15.11.05 21:55:

Переварил.
Теперь я задался вопросом посущественее.
Можно ли добиться результата
http://ru.somesite.com/rubr.php
вместо http://somesite.com/ru/rubr.php
Если да, то как это сделать?
И вопрос еще посущественней.
Как будет воспринимать такие субдомены поисковый робот. Например Яндекс. Я слышал, что Яндекс блокирует зеркала сайтов. Не воспримет ли он такие субдомены как зеркала одного сайта только потому, что они заходят на один IP???

-~{}~ 15.11.05 23:51:

Вставил в главную директорию файл .htaccess
Его содержание:
<VirtualHost 53.151.13.80>
DocumentRoot /home/krs/domains/somesite.com/public_html/
ServerName *.somesite.com
ServerAdmin [email protected]
ServerAlias *.somesite.com
</VirtualHost>
Вывод:
при вызове ru.somesite.com выводится пустая страница с названием хостера.
Помогите!!!
 

SiMM

Новичок
> Вставил в главную директорию файл .htaccess
Это не решается .htaccess'ом - править надо httpd.conf + DNS настроить. Чтобы все запросы *.somesite.com шли на IP somesite.com

> при вызове ru.somesite.com выводится пустая страница с названием хостера.
Правильно. Хостер не в курсе, что у него есть такой виртуальный хост ;)
 

Иван 76

Новичок
К DNS у меня доступ через панель управления есть. Что там нужно настроить?
И что нужно делать в httpd.conf??? Как к нему добраться???
 

SiMM

Новичок
> И что нужно делать в httpd.conf???
Настроить виртуальные хосты.

> Как к нему добраться???
Это уже к хостеру - не факт, что у тебя туда есть доступ - но может хостера можно уговорить прописать.
Например, под FreeBSD у меня лежит в /usr/local/etc/apache/httpd.conf
 
Сверху