mod_rewrite: направление домена в подпапку (без vhost) - PullRequest
0 голосов
/ 14 августа 2011

У меня есть два домена, которые являются псевдонимами, domain1.com и domain2.com. В настоящее время они оба направлены в одно и то же место, корень моего веб-пространства.Однако я хочу разделить их на независимые страницы и направить domain2.com в подпапку с другим содержимым.

Я понимаю, что правильный способ сделать это - использовать Apache Virtual Hosts.Тем не менее, мой поставщик услуг не разрешает мне доступ к этой функции, поэтому мне придется решать ее с помощью mod_rewrite.

Мне нужно что-то, что направляет www.domain2.com и domain2.com в подпапку / (которая должна вызывать index.php).Кроме того, www.domain2.com/file.txt должен идти в подпапку / file.txt и т. Д. ... Вот что я придумал:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} domain2\.com [NC]
RewriteRule ^(.*)$ subfolder/$1 [L]
</IfModule>

Однако, когда я запускаю его и иду вdomain2.com, я получаю 500 Internal Server Error и файл журнала говорит:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

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

RewriteRule ^(.*)$ subfolder/test.php?string=$1 [L]

Теперь, когда я захожу на domain2.com или domain2.com/asd, он печатает: subfolder / test.php Каким-то образом он попадает в рекурсию и печатает сам.Принимая во внимание, что если я использую следующее правило:

RewriteRule ^abc(.*)$ subfolder/test.php?string=$1 [L]

Затем domain2.com/abcdef печатает: def

Я не могу понять, что я делаю неправильно.У вас есть какие-нибудь предложения?Спасибо!

1 Ответ

0 голосов
/ 15 августа 2011

Возможно, что правило перезаписи применяется к подпапкам того, в чьем .htaccess оно появляется. Помогает ли это добавить условие, которое блокирует перезапись для URL, которые уже начинаются с subfolder/?

...