web-dev-qa-db-ja.com

条件付き書き換えベースを使用したhtaccess

私はサイトを持っています(the-tack-shop.co.uk)eコマースフレームワークをテストしています。共有SSLを使用して支払いをテストしようとしていました: https://web43.secure-secure.co.uk/the-tack-shop.co.uk/

SSLを使用するには、htaccessファイルを変更する必要がありました。

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ドメインでは機能しますが、通常のドメインでは機能しません。 2番目の書き換えベースをコメントアウトすると、通常のドメインでは機能しますが、SSLドメインでは機能しません。

誰かが私がどこで間違っているのか教えてもらえますか?

1
Phil Jackson

Apacheはあなたが求めていることを完全に実行することができますが、 RewriteBase ディレクティブはあなたが望む結果を達成するための規定された方法ではありません。

2つのオプションがあります。

  1. RewriteBaseを使用する代わりに、RewriteRule宣言でベースパスを指定するだけです

  2. キャッチオールに依存する代わりに、個別の NameVirtualhost 宣言を作成します

1
danlefree

同様の解決策も探しています。これは役立つかもしれません:

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

0
Fraz Ahmed