Требуется условие mod_rewrite и правило для замены ".com" на ".org" на 1 виртуальном хосте - PullRequest
0 голосов
/ 10 августа 2011

У меня есть ряд директив mod_rewrite (показан ниже как Код 1), которые запускают каждый запрос к серверу через пользовательское приложение PHP.

Код 1

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app/core.php [L,NC,QSA]

Прежде чем я доберусь допоследний шаг в mod_rewrites, мне нужно изменить любой запрос на mydomain.com на mydomain.org.Код 2 ниже показывает, что я думаю, но это не работает.Запрос дает мне 500 Внутренняя ошибка сервера.

Код 2

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain\.com$
RewriteRule ^ http://mydomain.org%{REQUEST_URI}
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app/core.php [L,NC,QSA]

Может кто-нибудь предложить предложение?Спасибо

Ответы [ 2 ]

1 голос
/ 10 августа 2011

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

RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://mydomain.org/$1 [R=permanent,L]

Вы должны поместить этот код непосредственно после строки перенаправления.

Вторая строка гарантирует, что перенаправление не выполняется, если не указан хост (чтобыцикл перенаправления в этом случае).

[R = постоянный, L] в третьей строке делает его постоянным перенаправлением и предотвращает любую дальнейшую обработку правил.Другие правила будут обработаны после перенаправления.


Полный файл будет:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://mydomain.org/$1 [R=permanent,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app/core.php [L,NC,QSA]
0 голосов
/ 10 августа 2011
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://mydomain.org/$1 [R=permanent,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app/core.php [L,NC,QSA]
...