2012-05-03 9 views
1

私は、次のサイト構造にRewriteEngine条件ディレクトリ

index.php 
services.php 
contact.php 
/admin 

と.htaccessに次のようにあります

RewriteEngine on 
RewriteCond %{REQUEST_URI} !(\.[^./]+)$ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) /$1.php [L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+php\ HTTP 
RewriteRule ^(.+)\.php$ /$1 [R=301,L] 

これが正常に私のURLをアップ体裁が整い、正しいページに指示します。

しかし、$ _POSTと$ _GETが多く使用されている管理者で機能が実行されないようにします。

/adminでルールを実行しないようにする方法や、トップレベルページでのみルールを実行するように制限する方法はありますか?

+0

。 –

+0

[親の.htaccessファイルを子ディレクトリに伝播させない]の複製が可能です(http://stackoverflow.com/questions/5382631/stop-parent-htaccess-file-from-propagating-to-child-directories) –

答えて

1

ちょうど(あなたのルールの両方の前に)RewriteEngine on行の後にこのルールを追加します。私は、管理フォルダ内の空白を持つ.htaccessファイルを上書きすると、ルートから何かをきれいだと思う

RewriteRule ^admin(/.*|)$ - [L] 
+0

私はそうです私の規則の後にこれを含めなければならないと、それは別のエラーの束で終わった。おかげさまですべてがうまくいくようです。 – Tomate

+0

あなたは喜んで、うまくいきました。 – anubhava