1

私の目標は、Web サイトで使用しているスクリプト言語をユーザーが把握できないようにすることです。私のウェブサイトの URL 構造はhttp://example.com/login/で、これはhttp://example.com/?page=loginです。

ページ パラメータは、ファイルが存在するかどうかを確認します。たとえば、?page=loginは、 login.phpファイルが存在するかどうかを確認し、それをロードする要求されたページとしてindex.phpファイルに含めます。ページが存在しない場合は、「ページが見つかりません」というメッセージが表示され、error.phpページが代わりになります。

これらの条件でエラーページをトリガーしたい (クエリに?page=errorを追加):

条件 1:要求された URI にファイル拡張子が追加されている。例: http://example.com/login.phpおよび index.php ファイル、 http://example.com/index.php

条件 2:ファイルが存在しない。例: http://example.com/notinserver.phpまたは http://example.com/notinserver.whatever

条件 3:ファイル拡張子がcss、js、jpg、jpeg、gif、または pngファイル ( http://example.com/images/logo.jpg ) でないこと。明確にするために、許可された拡張子 ( http://example.com/css/style.cssなど) でない限り、URI にピリオドを含めてはなりません 。

条件 4 : http://example.com/index/と書かれている場合。Web ページ自体を含める必要はありません。

デフォルトページhttp://example.com/への無制限のリダイレクト、またはindex.phpが書き込まれたときに、サーバーが内部エラーをスローするため、条件 1 を通過できませんでした。これが私がこれまでに持っているものです:

RewriteEngine On
RewriteBase /

RewriteRule ^([a-z]+)/ ?page=$1

RewriteCond %{REQUEST_URI} \.
RewriteRule . ?page=error [L]
4

1 に答える 1

0
#Condition 1:
RewriteCond %{REQUEST_URI} \.php$
#Condition 3:
RewriteCond %{REQUEST_URI} ![\.jpg|\.gif|\.css|\.js]$
RewriteRule . ?page=error [L]
于 2013-04-14T14:20:17.390 に答える