0

現在、私のサイトはどこでも SSL を強制しています。これは、私の RSS 駆動のニュースレターとフィードバーナーで問題が発生していることを除けば、私が望んでいる方法です。このため、フィードに例外を設ける必要があります。

誰かがこれをやってのけるための適切な htaccess ルールを手伝ってくれますか?

私のフィードは

/feed
/shop/feed
/forum/discussions/feed.rss

SSLを強制するための私の条件は次のとおりです。これは、すべての RSS フィードが強制されることを除いて機能します。

# Force SSL
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/forum [NC]
RewriteRule ^/?(.*)$ https://photoboothowners.com/$1 [R=301,QSA,L,NE]

以下を試してみましたが、正しく動作していないようです。

# Force SSL
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/forum [OR]
RewriteCond %{REQUEST_URI} !^/feed [OR]
RewriteCond %{REQUEST_URI} !^/shop/forum [NC]
RewriteRule ^/?(.*)$ https://photoboothowners.com/$1 [R=301,QSA,L,NE]

あなたの助けは大歓迎です!


更新: これは、サーバーのルートにある現在の .htaccess ファイルです。これは現在、http://photoboothowners.com/feedhttps://photoboothowners.comにリダイレクトしています(フィード ディレクトリが削除されていることに注意してください)。

RewriteEngine on


# Use PHP5CGI as default
AddHandler fcgid-script .php

RewriteCond %{HTTP_HOST} ^buyaphotobooth\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.buyaphotobooth\.net$
RewriteRule ^/?$ "https\:\/\/photoboothowners\.com\/starting\-a\-photo\-booth\-business\-build\-or\-buy" [R=301,L]

RewriteCond %{HTTP_HOST} ^photoboothforums\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.photoboothforums\.com$
RewriteRule ^/?$ "https\:\/\/photoboothowners\.com\/forum" [R=301,L]

# Force SSL
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/forum [NC]
RewriteCond %{REQUEST_URI} !feed   [NC]
RewriteRule ^/?(.*)$ https://photoboothowners.com/$1 [R=301,QSA,L,NE]


RewriteCond %{HTTP_HOST} ^photoboothowners\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.photoboothowners\.com$
RewriteRule ^how\-to\-use\-our\-premium\-print\-designs\-in\-breeze\-dslr\-remote\-pro\/?(.*)$ "https\:\/\/photoboothowners\.com\/how\-to\-use\-our\-photo\-booth\-template\-designs\-in\-breeze\-dslr\-remote\-pro$1" [R=301,L]

RewriteOptions inherit

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^shop\/photo\-booth\-layouts\-and\-samples\.html$ "https\:\/\/photoboothowners\.com\/shop" [R=301,L]

<Files 403.shtml>
order allow,deny
allow from all
</Files>
4

1 に答える 1

0

あなたのルールは使用しているので、次のORように読みます:

if server port is 80 and the request is not forum OR it is not feed OR it is not shop/forum

それはすべてに一致するでしょう。両方を削除[OR]して、一致が次のようになるようにします。

if server port is 80 and the request is not forum AND it is not feed AND it is not shop/forum

編集:

更新された質問によると、次の行にスラッシュがありません。

RewriteCond %{REQUEST_URI} !feed [NC]

する必要があります

RewriteCond %{REQUEST_URI} !/feed [NC]

于 2013-01-31T03:00:40.093 に答える