Назад | Перейти на главную страницу

htaccess с условной rewritebase

У меня есть сайт (the-tack-shop.co.uk), в которой я тестирую свою платформу электронной коммерции. Я пытался протестировать платеж с использованием общего SSL: https://web43.secure-secure.co.uk/the-tack-shop.co.uk/.

Мне пришлось сменить htaccess файл для работы с SSL:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{HTTP_HOST} secure-secure\. [NC]
RewriteBase /the-tack-shop.co.uk/
RewriteRule ^[a-z0-9\-_/\.]*$ index.php [L]

RewriteCond %{HTTP_HOST} the-tack-shop\. [NC]
RewriteBase /
RewriteRule ^[a-z0-9\-_/\.]*$ index.php [L]

RewriteRule ^.* http://www.google.com [L]

Это будет работать с доменом SSL, но не с обычным доменом. Закомментируйте вторую базу перезаписи, и она будет работать в обычном домене, но не в домене SSL.

Кто-нибудь может сказать мне, где я ошибаюсь?

Apache вполне может делать то, о чем вы просите, однако RewriteBase Директива не является предписанным способом достижения желаемых результатов.

У вас есть два варианта:

  1. Вместо использования RewriteBase просто укажите базовый путь в вашем RewriteRule декларации

  2. Создать отдельный ИмяVirtualhost декларации вместо того, чтобы полагаться на всеобъемлющий

Я тоже ищу подобное решение. Это может помочь:

http://www.unitedforums.co.uk/vb/website-development-scripting/12597-htaccess-mod_rewrite-rules-both-urls.html#post73343