ExpressionEngine: каталог mod_rewrite для субдомена при удалении /index.php/ - PullRequest
0 голосов
/ 08 июня 2011

В ExpressionEngine, каков наилучший способ mod_rewrite каталога на поддомен, при этом сохраняя index.php вне изображения?

Например:

http://www.domain.com/index.php/group/template -> group.domain.com/template

Я видел варианты, которые берут ЛЮБУЮ группу и переписывают их на субдомены, но мне нужен только один.

Мне было поручено портировать через дочерний сайт с другого сервера (на котором также работал EE). Обычно я просто перенаправляю group.domain.com на domain.com/group (удаление index.php уже работает), но это считается неприемлемым решением. И, конечно, это чувствительно ко времени.

Я изучаю Google и EE docs / wiki уже двенадцать часов, и я начинаю смотреть в глаза. Кто-нибудь может мне помочь?

Заранее спасибо.

1 Ответ

1 голос
/ 08 июня 2011

Вот как я создам ваш .htaccess файл:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI} ^/(group|group/.*)$
    RewriteRule ^(.*)$ http://group.domain.com/template/$1 [L]

    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

В этом примере используется метод «Проверка файлов и каталогов» для удаления index.php из URL-адреса и директива RewriteCond для указания Apache на обработку запросов для «группы». "каталог и все его подкаталоги по-разному.

Любые ссылки на domain.com/group/template будут перенаправлены на group.domain.com/template/.

Если вы хотите, чтобы сканеры знали, что ваш контент перемещен, и хотите сделать переход как можно более плавным, вы можете добавить 301 Redirect в RewriteRule:

    RewriteCond %{REQUEST_URI} ^/(group|group/.*)$
    RewriteRule ^(.*)$ http://group.domain.com/template/$1 [R=301,L]

Это обеспечит направление пользователей и поисковых систем на правильную страницу.

...