1

Apache のすべての環境変数とのリンクがあるかどうか、およびそれらが出力されたときにどのように見えるかを知りたいだけです。

その理由は、.htacess mod_rewrite の正規表現を書き込もうとしているのですが、これらの変数が何を出力しているのかわかりません。何が印刷されているかわからない場合、正規表現を書くのは難しいです。私はそれらを間違え続けています。どこかに行方不明のリストがありますか。

質問を投稿して応答を待つよりも、グーグルで検索する方が簡単で、人々が何を尋ねられたのかよくわからないことを信じてください。

Googleソースが見つからないようです。

例 %{THE_REQUEST} GET /index.php HTTP/1.1

私が抱えている本当の問題は、この .htaccess ファイルがあることです

    # Do not remove this line, otherwise mod_rewrite rules will stop working

RewriteBase /

Options +Multiviews

AddHandler application/x-httpd-php .css

AddHandler application/x-httpd-php .js

Options +FollowSymLinks
RewriteEngine On


#NC not case sensitive
#L last rule don't process futher
#R 301 changes the url to what you want

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

RewriteRule ^demo(.*)$ finished$1 [NC]

RewriteCond %{REQUEST_URI} /
RewriteRule ^(.*)$ home/$1

アクセスしようとしているエラーページにリダイレクトされ続けます

example.host56.com/home/

しかし、それは私をエラーに導き続けます。ホームフォルダーには、その中に index.php ファイルもあります

4

1 に答える 1

1

これは mod_rewrite 変数チート シートです: http://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet.html

ここでのルール:

RewriteCond %{REQUEST_URI} /
RewriteRule ^(.*)$ home/$1

ループしています。その理由は、%{REQUEST_URI}変数が常に で始まり、/一致する境界を示すために" ^" または " "を使用していないため、その条件が常に true になるためです。$常に true であるため、ルールは常に応答されます。また、書き換えエンジンは、URI の変更が停止するまで (または内部再帰制限に達して 500 エラーが発生するまで) ループし続けるため、パターンは常に一致します。次のように変更してみてください。

RewriteCond %{REQUEST_URI} !^/home/
RewriteRule ^(.*)$ home/$1

また

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ home/$1
于 2013-05-03T04:05:08.790 に答える