2009-03-03 16 views
1

私はPHPのnewbです。誰も私に各ラインが何をしているか教えてもらえますか?これが必要ですか?それは私にエラー私の.htaccessファイルでは、これらの宣言はどういう意味ですか?

RewriteCond %{REQUEST_URI} /~([^/]+)/? 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) /~%1/rewrite.php?p=$1&%{QUERY_STRING} [L] 
RewriteCond %{REQUEST_URI} /~([^/]+)/? 
RewriteRule ^index\.php?(.*)$ /~%1/rewrite.php?p=%1&%{QUERY_STRING} [L] 
#there is no ~ character in the URL 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) ./rewrite.php?p=$1&%{QUERY_STRING} [L] 
RewriteRule ^index\.php?(.*)$ ./rewrite.php?p=$1&%{QUERY_STRING} [L] 
#WJ-180 fix 
RewriteRule ^resume\.php?(.*)$ ./rewrite.php?p=resume\.php$1&%{QUERY_STRING} [L] 
+0

これはPHPとは関係ありません。これはApacheの設定に関する質問です。 http://httpd.apache.org/docs/2.0/howto/htaccess.html –

答えて

0

簡単な答え:これらの宣言はすべての要求をrewrite.phpファイルに書き換えます。

より包括的な答え:RewriteCondRewriteRuleのディレクティブは、Apache module mod_rewriteからのもので、ルールベースのURL書き換えメカニズムを備えています。

これらのルールは、特定のディレクトリ(/~foobarに/rewrite.php)またはルート(/rewrite.php)のいずれかで、rewrite.phpファイルへのすべてのリクエストを書き換えることを意図しているようです。

3

あなたは新しいしている場合、http://httpd.apache.org/docs/1.3/mod/mod_rewrite.htmlを読んでください、それは非常にうまく説明されているを与えています。

p.s.あなたのタイトル「私のPHP .htaccessファイルでは、これらの宣言はどういう意味ですか?」 .htaccesはPHPファイルではありません。

0

これはApacheのmod_rewriteルールです。何らかのフレームワークを使用していない限り、おそらくそれは必要ありません。詳細については、Apache mod_rewriteを参照してください。

1

これらは「要求が既存のファイルまたはディレクトリと一致しない場合のみ、以下のルールを使用しています。」

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

言います

関連する問題