Как Apache переписать URL без перенаправления?

Можно ли заменить имя URL, например http://mysite.com/sub/, на http://sub.mysite.com с помощью htaccess?

Я не хочу делать перенаправление, а не просто сопоставлять адрес подкаталога с адресом поддомена. Таким образом, когда человек вводит адрес типа http//sub.mysite.com/image.jpg, этот адрес остается в браузере, но он считывает содержимое с http//mysite.com/sub/image.jpg.


person rookie000    schedule 04.07.2011    source источник
comment
Я не знаю, можете ли вы сделать это с переписыванием или нет, но правильный способ - использовать VirtualHost, указывающий на подкаталог, который вы хотите сделать DOCUMENT_ROOT   -  person prodigitalson    schedule 04.07.2011
comment
спасибо, моя проблема в том, что mysite.com/sub — это виртуальный каталог, поэтому вложенная папка на самом деле не существует.   -  person rookie000    schedule 04.07.2011


Ответы (1)


Да, это возможно, но для начала у вас должен быть root-доступ к серверу, вам также нужно будет внести некоторые изменения в записи DNS, поэтому перед запуском убедитесь, что у вас есть этот доступ.

Я использовал оба метода ранее, и они оба работают, однако я обнаружил, что использование папок было победителем в конце дня для нашего использования, это значительно упростило для нас, и нам не пришлось беспокоиться об изменении связей в сценариях, например. с http://www.my-site.com/images на http://images.my-site.com в зависимости от используемой структуры кода.

Вместо того, чтобы печатать эти длинные инструкции, я собираюсь дать вам 2 ссылки, которые имеют несколько разные подходы в зависимости от того, есть ли у вас физическая папка для использования или это переменная в URL-адресе. Они говорят это, наверное, так же хорошо, как и я ;-)

метод физической папки: : метод переменной URL

Я надеюсь, это поможет вам

person Ryan    schedule 04.07.2011
comment
Большое спасибо, к сожалению, мой хостинг не поддерживает подстановочные знаки. Хотелось бы, чтобы был более простой способ просто переписать имя URL. Я могу перенаправить sub.mysite.com на mysite.com/sub, но все, что мне нужно, это чтобы в адресной строке оставался поддомен, а не каталог. - person rookie000; 04.07.2011
comment
Извини, приятель, когда я прочитал, что ты говоришь, что не хочу, я подумал, что это скорее предпочтение, чем требование. К сожалению, DNS будет давать сбой каждый раз, когда делается запрос, если DNS не настроен правильно. Единственный другой вариант, который я могу придумать, это (в зависимости от вашего уровня доступа и способностей кодирования) иметь сценарий, динамически записывающий в DNS для каждого внесенного изменения, а затем использовать mod_rewrite для динамического изменения URL-адреса, это будет работать только на сервере, который работает хотя собственный DNS. - person Ryan; 04.07.2011