2012-06-04 3 views
3

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

То, что я пытаюсь достичь этого:

Я недавно переехал часть моего сайта на поддомене на другом сервере так, что раньше было в: http://mysite.com/clients теперь на http://clients.mysite.com

с помощью: RedirectMatch 301 https?://mysite.com/clients/^(.*)$ https://clients.mysite.com/$1 работает отлично, просто перенаправляя людей, ударяющих http://mysite.com/clients в новый поддомен, но я хотел был бы иметь возможность сохранить строку после/клиентов/

, так что если кто-то попадает, например, http://mysite.com/clients/could_be_a_number_of_things.php перенаправить на http://clients.mysite.com/could_be_a_number_of_things.php

Может кто-нибудь посоветуете?

полный .htaccess по запросу:

# -FrontPage- 

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti* 

<Limit GET POST> 
order deny,allow 
deny from all 
allow from all 
</Limit> 
<Limit PUT DELETE> 
order deny,allow 
deny from all 
</Limit> 
#AuthName mysite.com 
#AuthUserFile /home/inhost/public_html/_vti_pvt/service.pwd 
#AuthGroupFile /home/inhost/public_html/_vti_pvt/service.grp 

# BEGIN WordPress 
Options +FollowSymLinks -MultiViews 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
RewriteCond %{HTTPS}s on(s)| 
RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.com$ 
RewriteRule ^clients/(.*)$ http%1://clients.mysite.com/$1 [L,NC,R=301] 
</IfModule> 

# END WordPress 
+0

Это выглядит как редирект довольно неплохо, но я не эксперт по конфигурации Apache. Я просто видел, что '^ (. *) $' Больше не будет соответствовать имени хоста. Попробуйте удалить кароту '^', что означает * начало строки *. Возможно, он будет правильно соответствовать траектории конечного URL-адреса. –

+0

Пробовал это, те же результаты :(Я использую RedirectMatch 301^https?: //inceptionhosting.com/clients/ (. *) $ Https://clients.inceptionhosting.com/$1 на основе предложения, но это не помогло либо. – user1190083

ответ

1

Включение mod_rewrite и .htaccess через httpd.conf, а затем поместить этот код в .htaccess под DOCUMENT_ROOT директории на сервере mysite.com:

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

RewriteCond %{HTTPS}s on(s)| 
RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.com$ 
RewriteRule ^clients/(.*)$ http%1://clients.mysite.com/$1 [L,NC,R=301] 
+0

Спасибо, но нет разницы. мой полный .htaccess http://pastebin.com/2pJYtN8J – user1190083

+0

Этот URL-адрес pastebin недоступен для меня, пожалуйста, напишите свой полный .htaccess в своем вопросе. Также скажите мне, что сделал URI вы пытаетесь, и где (сервер, путь к каталогу) у вас есть ваш файл .htaccess? – anubhava

+0

Нечетный он загружается отлично здесь, в вопросе по запросу. Цените помощь btw! – user1190083

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