2009-08-16 15 views
0

これは私の.htaccessファイルですが、動作しません。 URLはリダイレクトされません。助けて。.htaccessファイルのmod_rewriteルールに問題があります

RewriteEngine on 
RewriteRule ^home index.php 
RewriteRule ^contactus index.php?file=c-contactus 
RewriteRule ^course_registration index.php?file=c-course_registration 
RewriteRule ^ncplhpage index.php?file=c-ncplhpage 
RewriteRule ^scplhpage index.php?file=c-scplhpage 
RewriteRule ^corporatetra index.php?file=c-corporatetra 
+0

あなたは正確に何を試しましたか? – Gumbo

答えて

0

RewriteBaseを設定する必要があります。

はしかし、私はサイドポイントとして、すなわち

RewriteEngine on 
RewriteRule ^home /index.php 

、問題はすべての場合にindex.phpを前に/の欠如である疑いがある、あなたは次のように単一のディレクティブにあなたのディレクティブを組み合わせることを検討しています

RewriteRule ^(home|contactus|course_registration|ncplhpage|scplhpage|corporatetra)$ /index.php?file=c-$1 

?あなたは、あなたのindex.phpは$ _GET [「ファイル」ことをチェックしなければならない心の中でクマをさらに一歩これを取ると、あなたのindex.phpファイル自体に名前の確認を伝承、すなわち

RewriteRule ^([_a-z]+)$ /index.php?file=c-$1 

ができ]が有効です。/contactusのようなパブリックURLを持っているという理由だけで、誰かがまだ/index.php?file=c-contactusに直接入力することはできません(試してみてください)。つまり、例えば/index.php?file=c-../../../../etc/passwdに入力することができます。だから、あなたのindex.phpもいくつかの健全性チェックを行うようにしてください。これは両方ともセキュリティの面で優れていますが、URLを.htaccessファイルにハードコードすることを避けることもできます。

関連する問題