2016-03-29 14 views
1

私はウェブサイトを構築しており、もっと簡単にするためにPHPスクリプトに多くのinclude文を使用しています。ウェブサイトphpファイルへのアクセスを制限する方法

だから、例えば私はこのように書きindex.phpファイルがあります。

<?php include 'script/uppage.php';?> 
<div id='ContentArea' class="container"> 
    <div class="row"> 
     <div class="col-sm-8"> 
      <?php 
      switch($page){ 
       case 'register': 
        include 'pages/register.php'; 
        break; 
       case 'fp': 
        include 'pages/forgotpassword.php'; 
        break; 
       default: 
        include 'pages/main.php'; 
        break; 
      }?>   
     </div> 
     <div class="col-sm-4"> 
      <?php include 'script/side_menu.php' ?> 
     </div> 
    </div> 
</div> 
<?php include 'script/downpage.php';?> 

を私は人々が彼らのブラウザから直接、例えば入力するregister.phpしようとしている場合にアクセスを拒否したいです。 www.mywebsite.com/pages/register.phpに入ると、エラーが表示されます。

大きなウェブサイトといくつかの基本原則に対してこれを行う方法については、一般的なガイドラインがありますか?どのような助けも非常に感謝!

+3

最も簡単な方法は、public_htmlまたはwebルートディレクトリからそれを外しておくことです。 – Devon

+0

どうすればアクセスできますか? – Marcipanas

+1

Webディレクトリに含める必要はありません。 '../ pages/register.php'のように、どこにあるかに基づいて絶対パスまたは相対パスを指定します。 – Devon

答えて

0

すでにコメントで述べたように - あなたは、あなたの外側のサイトフォルダ、すなわちDOCUMENT_ROOTをこのファイルを保存し、同じようinclude'emことができます。

include $_SERVER['DOCUMENT_ROOT'] . '/../pages/main.php'; 

別のオプションは、例えば、トップファイルにいくつかの特別な定数を定義しています

その後
<?php 
define('SOME_CONSTANT', true); // here, we define a constant 
include 'script/uppage.php';?> 

あなたのインクルードファイルの場合は、ちょうどpages/main.phpで、たとえば、それを確認してください。

<?php 
if (!defined('SOME_CONSTANT') || SOME_CONSTANT !== true) { 
    die(); 
} 
// other code 
-3

をので、私はこれを行うには、.htaccessファイルを使用します。

.htaccessファイルにOptions All -Indexesという行を追加するだけです。

+0

これはファイルへのアクセスを許可していません。ディレクトリインデックスを削除するだけです。 – Devon

関連する問題