0

いくつかのリダイレクト間で競合が発生し、問題が発生しています。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://www.mywebsite.org/ [R=301,L]

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Options +FollowSymLinks -MultiViews
RewriteCond %{REQUEST_FILENAME} !403\.shtml
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*) index.php?a_aid=$1  [NC,L,R=301]

私が遭遇している問題は、誰かが安全でないURLを入力すると、それらをに転送することです。

http://www.mywebsite.org/index.php?a_aid=https://www.mywebsite.org/url
4

1 に答える 1

1

私の賭けは、行末に [L] を追加する必要があるということです:

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

L タグは、ルールが適用された場合に実行を停止するようにコードに指示します。

 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

これが私のあるべき姿だと思います。

このセクションでは、ルールに適用できるさまざまなフラグを見つけます。HTTPSにも一致するように、NCフラグも追加することをお勧めします(ケースなし)

http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

于 2012-11-01T02:18:47.537 に答える