6

Я осмотрелся и попытался выполнить некоторые правила и условия, которые сработали; в то время как некоторые из них не работают или условие слишком сильно захватывает, и другие домены также перенаправляются. Это работает для меня:htaccess перенаправить + скрывать подпапку в url

# Redirect (also catches www.) 
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ 
RewriteRule ^(/)?$ subfolder [L] 

в результате, если вы посещаете www.domain.com или domain.com перенаправлены domain.com/subfolder Великий, но I'dd также как и/вложенная часть будет скрытый от URL-адреса.

Как это достичь?

Обратите внимание, что у меня есть несколько доменов, каждый из которых должен перенаправляться в свою собственную папку. Я также хочу, чтобы каждая страница все еще была видна в соответствующей папке.

Так www.domain.com/abc должен перенаправлять на domain.com/subfolder/abc но показать domain.com/abc

ответ

10

Попробуйте это правило:

# remove www 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [NE,R=301,L] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ 
RewriteRule !^subfolder/ /subfolder%{REQUEST_URI} [L] 
+0

Это работает! Но я только заметил, что www. часть рассматривается как необязательная, вместо удаления. В то время как это прекрасно, можно ли позволить ему также всегда удалять www. ? – Zerreth

+0

На самом деле нам нужно отдельное правило удаления www, так как это просто внутренняя переписывание. – anubhava

+0

Спасибо, это помогло мне решить ту же проблему. :-) – r0ber7

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