簡體   English   中英

PHP文件的Mod-rewrite鎖執行和對.git文件夾的訪問

[英]Mod-rewrite lock execution of PHP files and access to .git folder

我想使用mod-rewrite阻止所有文件的執行,除了文檔根目錄中的bootstrap.php文件之外,我還想阻止對.git文件夾(也位於文檔根目錄)中所有文件的訪問。 另一個(可能是更好的解決方案)是只允許訪問名為public(在我的應用程序的不同部分中有多個目錄,稱為public)的目錄內的文件,拒絕直接訪問任何其他文件,同時通過我的引導程序引導所有其他請求。 php文件。 這就是我所擁有的。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /bootstrap.php

RewriteCond %{REQUEST_FILENAME} -fd
RewriteRule .*\.php /denied.php

RewriteCond %{REQUEST_FILENAME} -fd
RewriteRule \.git /denied.php

任何建議,不勝感激。

不允許對文件的條件使用多重驗證,如果這樣使用,將給您帶來錯誤,例如bad flag delimiters

RewriteCond %{REQUEST_FILENAME} !-fd

所以會是這樣的:

Options +FollowSymLinks -MultiViews
RewriteEngine On

# not a existent file
RewriteCond %{REQUEST_FILENAME} !-f
# and not a folder
RewriteCond %{REQUEST_FILENAME} !-d
# and not a symbolic link
RewriteCond %{REQUEST_FILENAME} !-l
# and not bootstrap.php or denied.php
RewriteCond %{REQUEST_FILENAME} !(bootstrap.php|denied.php)$
# redirect to /bootstrap.php
RewriteRule .* /bootstrap.php

# is a existent file
RewriteCond %{REQUEST_FILENAME} -f [OR]
# or directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
# or symbolic link
RewriteCond %{REQUEST_FILENAME} -l
# and not bootstrap.php or denied.php
RewriteCond %{REQUEST_FILENAME} !(bootstrap.php|denied.php)$
# contains .php or .git + anything else redirect to /denied.php
RewriteRule \.(php|git)/?.*$ /denied.php

您也可以使用F標志代替它向客戶端瀏覽器返回403 FORBIDDEN響應。

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteCond %{REQUEST_FILENAME} !(bootstrap.php|denied.php)$
RewriteRule \.(php|git)/?.*$ - [F]

限制訪問某些文件夾的常用方法是將自己的.htaccess文件放入該文件夾中,並使用以下代碼將該文件放入該文件中

Order Allow,Deny
Deny from all

這樣可以防止訪問整個文件夾(以及該文件夾內的所有文件夾)(從Web /互聯網)。

因此,我想如果您要在主文件夾中使用此文件並對其進行修改,以使其僅允許一個文件夾存儲所有“公共訪問的文件”(例如,圖像和.css),那將是最好的解決方案您。

您可以允許一個這樣的文件夾

Order Allow,Deny
Allow /onefoldername
Deny from all

這將阻止從Web訪問除名為“ onefoldername”的文件夾以外的任何內容。

暫無
暫無

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

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