0

このコードを使用して奇妙な動作に対処しています

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

しかし、問題がこのコードにあるとは思いません。リダイレクトは正常に機能していますが、たとえば、このアドレスを使用するmysite.com/somethingとリダイレクトされますwww.mysite.com/_/something

Joomla htaccess:

RewriteEngine On
RewriteBase /

RewriteRule sitemap\.xml http://www.mojerc.cz/index.php?option=com_xmap&sitemap=1&view=xml [R]

## přesměrování na chybovou stránku 404
ErrorDocument 404 /obchod/poradce/404.html

########## Začátek - Joomla! jaderná SEF část.
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## Konec - Joomla! jaderná SEF část.

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

この奇妙なことに遭遇したことのある人はいますか?

手伝ってくれてありがとう。

4

1 に答える 1

1

.htaccessこのディレクトリを含むディレクトリ内のファイルも探す必要があります。マニュアルによると

.htaccess ファイルにある構成ディレクティブは、.htaccess ファイルがあるディレクトリと、そのすべてのサブディレクトリに適用されます。ただし、上位のディレクトリに .htaccess ファイルが存在する可能性があることも覚えておくことが重要です。ディレクティブは見つかった順に適用されます。したがって、特定のディレクトリにある .htaccess ファイルは、ディレクトリ ツリーの上位にある .htaccess ファイルにあるディレクティブをオーバーライドする場合があります。そして、それらは、さらに上位にある、またはメインサーバー構成ファイル自体で見つかったオーバーライドされたディレクティブを持っている可能性があります。

また、サーバー構成ファイル内のディレクティブも処理されることに注意してください。サーバー構成ファイルにアクセスできない場合 (共有ホスティングを使用している場合、またはそのようなものを管理する会社でホスティングしている場合)、ホストに連絡して、その中に RewriteRules が存在するかどうかを確認する必要があります。ファイル。

さらに、PHP やその他の動的言語もheader()Apache と同様のコマンドを実行して、ページをリダイレクトさせることもできます (ただし、それらは PHP ファイルの 1 つに含まれている必要があります)。

Firefox のライブ HTTP ヘッダーなどのブラウザーでプラグインを使用して、ページを読み込んだときにヘッダーを表示し、リダイレクトが発生している場所を確認できます。(ただし、一度に多くのタブを実行していないことを確認してください。)

更新 何か他のことが私に起こりました。以前に を含む 301 リダイレクトのルールがあった場合_/そのルールを既に削除していれば、ブラウザにキャッシュされている可能性があります。あなたが投稿したこのコードには、あなたが経験している動作を引き起こすルールはありません。Joomla を実行しているため、Joomla 構成 (おそらくインストールのデフォルト ディレクトリ) にある可能性があります。

于 2013-08-11T17:45:47.687 に答える