2012-06-19 62 views
-1

是他們配置.htaccess文件以只讀特定文件的方式嗎?只說index.php而不是別人?將htaccess配置爲只讀index.php

編輯:我知道index.php是將被讀取的默認文件。我想要這樣的:

如果用戶輸入www.example.com它默認閱讀index.php。 如果輸入www.example.com/index2.php,它應該讀取index2.php。

不是我想要的是無論URL是什麼地方都顯示404錯誤頁面。我只有兩個文件應該被讀取。

+0

「read」是什麼意思? – CodeCaster

+0

你能指定你想要達到什麼嗎?它是爲了什麼?你知道index.php默認是你訪問網站的url時看到的第一個頁面嗎? – poepje

+0

問題很模糊 - 你試圖完成什麼? – Repox

回答

0

你還沒有真的給什麼你真正想要做的,如果你想需要的某些文件的認證,那麼你可以使用像下面的很多信息:

<Files "index.php"> 
require valid-user 
</Files> 

我不幸的是,如果沒有更多的信息,我們不能真正提出任何其他建議

+0

FGITW的答案通常不會回答這個問題... – Repox

+0

想象一下,如果事實證明是正確的,你會有多麼的不安。 – arpz

+2

我不生氣;我每天都有錯 - 我是一名開發人員。 – Repox

3

Zend框架提供了一個默認的.htaccess的路由所有請求到index.php,除非被請求的文件確實存在:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

您可能會使其更加嚴格和路由的一切index.php文件:

RewriteEngine On 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

請記住,這會使額外的請求,比如CSS文件變得不可能。

[編輯]

這也是不錯的看看由Drupal的提供的.htaccess。在那裏,某些路徑和文件類型也被阻止。在Drupal的.htaccess的第一個指令是:

<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$"> 
    Order allow,deny 
</FilesMatch> 

所以,如果你想阻止在application目錄只有PHP文件訪問和一切,你可能會做:

<FilesMatch "(\.php$|^application)"> 
    Order allow,deny 
</FilesMatch> 

(不經過測試,因爲我不是htaccess專家,代碼只是我的頭腦;如果需要更正,請有人在評論中發表評論或直接編輯我的代碼)。

+0

這就像我想要的東西。但我想要允許某些文件並停止某些文件。那可能嗎? – abhig10

+0

+1你是賴特(刪除我的答案)。 –

+0

@abhig看到我編輯的答案。這會做你想達到的目標嗎? – mingos