簡體   English   中英

配置htaccess以只讀index.php

[英]Configuring htaccess to read only index.php

我可以將.htaccess文件配置為僅讀取特定文件嗎? 只說index.php而不說其他人?

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

如果用戶輸入www.example.com,則默認情況下為index.php。 如果輸入www.example.com/index2.php,則應該讀取index2.php。

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

Zend Framework提供了一個默認的.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>

因此,如果您只想阻止對php文件和application目錄中所有內容的訪問,則可以這樣做:

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

(未經測試,因為我不是htaccess專家,並且代碼太過頭了;如果需要更正,請有人在評論中添加評論或直接編輯我的代碼)。

您尚未真正了解要執行的操作的詳細信息。如果您僅嘗試對某些文件進行身份驗證,則可以使用以下內容:

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

不幸的是,如果沒有更多信息,我無法提出其他建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM