2012-05-11 3 views
2

Мне нужно http://profiles.mysite.com/Me, чтобы показать, что будет показывать http://mysite.com/profile.php?user=Me..htaccess Папка субдомена для QueryString

«Я» изменяется в зависимости от имени пользователя. Он может содержать пробелы и не является реальной папкой.

Я не хочу, чтобы URL-адрес изменялся в адресной строке.

ответ

3
  1. Включение mod_rewrite и .htaccess через httpd.conf
  2. Включить mod_proxy в вашем httpd.conf

Наконец-то введите этот код в ваш .htaccess под DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f [OR] 
RewriteCond %{REQUEST_FILENAME} !-d [OR] 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule^- [L] 

RewriteRule ^([^\s]+)\s([^\s]+)(\s.*)?$ $1+$2$3 [L] 
RewriteRule ^([^\s]+)\s $1 [L] 

RewriteCond %{HTTP_HOST} ^profiles\.mysite\.com$ [NC] 
RewriteRule ^(.*)$ http://mysite.com/profile.php?user=$1 [P,L,QSA] 

Этот ответ теперь будет поддерживать любое количество пробелов в URI, поскольку оно основано на рекурсии. Другими словами, URI, как это:

http://profiles.mysite.com/foo bar baz 

будет передан как:

http://mysite.com/profile.php?user=foo+bar+baz 

хотя URL в браузере останется:

http://profiles.mysite.com/foo&20bar%20baz 
+1

Спасибо, но это приводит к изменению URL-адреса. – Dav

+1

Это просто означает, что модуль mod_proxy не загружается в httpd.conf. Обратите внимание, что я использую флаг 'P' вместо флага' R'. См. Здесь для получения дополнительной информации: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html – anubhava

+1

Получил работу, благодаря вам обоим! – Dav

1

Собираем следующий код в файл .htaccess в корне веб должен дать вам то, что вам нужно:

RewriteCond %{HTTP_HOST} ^profiles.mysite.com 
RewriteRule ^(.*)$ mysite.com/profile.php?user=$1 [L] 
+0

Он говорит: «Не найдено Запрошенный URL/Me не найден на этом сервере. " – Dav

+1

Put RewriteEngine В верхней части файла .htaccess - и, конечно же, убедитесь, что модуль перезаписи загружен на ваш веб-сервер и что команда AllowOverrides All является частью директив веб-каталога в файле conf. – Ansari

+0

Все эти вещи уже сделаны. Это все равно не сработает. :( – Dav

Смежные вопросы