带有条件 rewritebase 的 htaccess

带有条件 rewritebase 的 htaccess

我有一个网站 ( 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 域,但不适用于普通域。注释掉第二个 rewritebase,它将适用于普通域,但不适用于 SSL 域。

谁能告诉我我哪里错了?

答案1

Apache 完全有能力完成你所要求的事情,但是重写库指令不是实现你期望结果的规定方法。

您有两个选择:

  1. 不要使用 RewriteBase,只需在RewriteRule声明中指定基本路径即可

  2. 创建单独的名称虚拟主机声明,而不是依赖一个包罗万象的

答案2

相关内容