LINUX.ORG.RU

mod_rewrite с поддомена на файл


0

1

не могу составить правило, чтобы при запросе http://1.site.com открывался контент http://site.com/1.html но урл в браузере при этом оставался http://1.site.com

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*).site.com$
RewriteCond %{HTTP_HOST} !^www.site.com$
RewriteRule ^(.*)$ http://site.com/%1.html

редиректит на http://site.com/1.html

http://stackoverflow.com/questions/1456956/redirect-subdomain-to-folder тут пишут о mod_proxy - можно ли реализовать без него? спасибо

★★☆☆

mod_proxy - можно ли реализовать без него?

По идее должно быть возможно, если домены висят на одном сервере.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

да, более того
ServerAlias *.site.com и днс соответственно так же

xtraeft ★★☆☆ ()

Ты о чём-то таком?

RewriteCond %{HTTP_HOST} ^(.+)\.domain\.net$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain\.net$ [NC]
RewriteCond %{REQUEST_URI} !^/sub
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(www\.)?(.+)\.domain\.net(.*) /sub/$2/%{REQUEST_URI}
Deleted ()
Ответ на: комментарий от xtraeft

sub это мой подкаталог, убери его, если не нужен. $2 же там важен.

Deleted ()
Ответ на: комментарий от boombick

как?
создавать для каждого поддомена-файла свою запись что ли?

это не проще и не логичнее, файлов может быть несколько тысяч

xtraeft ★★☆☆ ()
Ответ на: комментарий от xtraeft

Не заметил :) Ну и в чем проблема-то тогда? Редиректи все на роутер и там уже отдавай нужный контент в зависимости от домена

boombick ★★★★★ ()
Ответ на: комментарий от xtraeft

Да, точно. И описал тебе вполне нормальный способ решения твоей проблемы.

Воспользоваться советом или нет - дело хозяйское :) Мне в принципе все равно, как ты это реализуешь :)

boombick ★★★★★ ()
Ответ на: комментарий от boombick

И описал тебе вполне нормальный способ решения твоей проблемы.

я его почему то не вижу, между тем вопрос я задал вполне конкретный.

если по существу сказать тебе нечего - можно и не писать вовсе.

xtraeft ★★☆☆ ()
Ответ на: комментарий от xtraeft

я его почему то не вижу, между тем вопрос я задал вполне конкретный.

Да, прошу прощения. Сейчас ответы, которые предполагают некое обдумывание - признак дурного тона.

Погугли тогда «Эффект Даннинга-Крюгера».. Так, для общего развития

boombick ★★★★★ ()
Ответ на: комментарий от boombick

нет, это все крутится на дешевом шареде за пару баксов.

есть несколько тысяч файлов (статика, html), которые надо отдавать именно так как я описал в первом посте.

отказаться от его использования я не вижу, честно :)

я даже mod_proxy не могу заюзать тут, потому что это даже не вдс.

xtraeft ★★☆☆ ()
Ответ на: комментарий от xtraeft

Ну смотри.

С помощью того же .htaccess заворачиваешь все запросы к хосту (кроме статики) на один и тот же файл, который у тебя будет их роутить. Так как у тебя все поддомены прописаны как алиасы, то все запросы так и так попадут на этот виртхост. В этом файле парсишь $_SERVER['HTTP_HOST'] ( у тебя же там LAMP с вероятность в 99.99%, да? :)), отбрасываешь в сторону .site.com, у тебя остается только имя твоего псевдо-поддомена. Опционально проверяешь наличие файла с таким именем в ФС, если он у тебя есть, то тупо его инклудишь и отдаешь. Если нет - 404

С помощью мод_реврайта тоже наверняка можно сделать, до своего компа доберусь, поищу решение.

Но вообще, по-моему, mod_rewrite - это извращение. Веб-сервер не должен заниматься маппингом урлов. И Сысоев молодец, что не стал прикручивать его к nginx-у. Там реврайт есть конечно, но очень куцый. Что стимулирует людей писать нормальные приложения :)

boombick ★★★★★ ()
Ответ на: комментарий от boombick

Увы, только в комплекте с mod_proxy

вот, спасибо. об этом я и спрашивал

С помощью того же .htaccess заворачиваешь все запросы к хосту (кроме статики) на один и тот же файл, который у тебя будет их роутить. Так как у тебя все поддомены прописаны как алиасы, то все запросы так и так попадут на этот виртхост. В этом файле парсишь $_SERVER['HTTP_HOST'] ( у тебя же там LAMP с вероятность в 99.99%, да? :)), отбрасываешь в сторону .site.com, у тебя остается только имя твоего псевдо-поддомена. Опционально проверяешь наличие файла с таким именем в ФС, если он у тебя есть, то тупо его инклудишь и отдаешь. Если нет - 404

и за это спасибо, но в данном случае пока не могу заюзать

xtraeft ★★☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.