/home
に
/index.php?page=home
/?page=home
は、誰かがこれがどのように行われるか私を見ることができますか?私たちは主題を取り上げていますが、modの書き換えを読む良いリソースはありますか?これまでの私の最大の苦労は、私はそれをデバッグする方法がないことです。物事は働くのか、しないのか。
/home
に
/index.php?page=home
/?page=home
は、誰かがこれがどのように行われるか私を見ることができますか?私たちは主題を取り上げていますが、modの書き換えを読む良いリソースはありますか?これまでの私の最大の苦労は、私はそれをデバッグする方法がないことです。物事は働くのか、しないのか。
これにはさまざまな方法があります。この1は、任意の存在しないファイルにルールを適用します。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L]
編集:あなたが一番上にRewriteEngine on
を追加する必要があり、これはあなたのWebドキュメントルートに.htaccess
になります。これはもちろん、htaccess(mod_rewrite)の使用があなたのWebホストで許可されているかどうか、また、ルールオーバーライドファイルの名前を.htaccessにするかどうかによって異なります。両方ともかなり一般的ですが、問題ではありません。
私が理解している場合は、エンドユーザにexample.com/home
と入力し、それを/index.php?home
に書き直してもらいたいですか?
RewriteLog
を有効にすることができます。ただし、コメントに示唆されているように、デバッグにのみ使用する必要があります。それを無効にするか、生産レベルを非常に低く設定するのが最善です。
RewriteLog "/path/to/logs/rewrite.log"
# Increase the log level (default 0, >4 gets pretty verbose)
RewriteLogLevel 3
RewriteRule .*\?page=(\w+)$ /$1/ [NC]
このトリックを行う必要がありますが、具体的にどのような場合に作業する必要がありますか?
あなたはhtaccessファイル
興味深いアプローチです、ありがとうございます。この場合、RewriteCondの必要はありませんか? –
編集後にあなたの質問を読んでください私はこれがあなたがしたいことではないことを認識しています...きれいなURLのためにMattsの答えをチェックしてください。私が与えたウェブサイトはまだ素晴らしいリソースです:) – sg3s
ありがとう、これは実際に私が必要としていたものですが、「存在しないファイルにもルールを適用します」という意味はどうですか? –
'RewriteRule'行は、要求がファイルシステム上のファイル(行1)またはファイルシステム上のディレクトリ(行2)と一致しない場合にのみ適用されます。言い換えれば、これはまだあなたが実際に存在するファイルを提供し、他のすべてをindex.phpに渡すことができます –
ああ、ありがとう、ありがとう。 –