2013-06-03 83 views
0

的.htaccess塊網址,我有這個.htaccess文件包含一個點

 
DirectoryIndex index.php 
RewriteEngine On 

RewriteBase/



########## Begin - Rewrite rules to block out some common exploits 
## If you experience problems on your site block out the operations listed below 
## This attempts to block the most common type of exploit `attempts` to Joomla! 
# 
## Deny access to extension xml files (uncomment out to activate) 
# 
#Order allow,deny 
#Deny from all 
#Satisfy all 
# 
## End of deny access to extension xml files 
# Block out any script trying to set a mosConfig value through the URL 
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] 
# Block out any script trying to base64_encode crap to send via URL 
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] 
# Block out any script that includes a tag in URL 
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR] 
# Block out any script trying to set a PHP GLOBALS variable via URL 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
# Block out any script trying to modify a _REQUEST variable via URL 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
# Send all blocked request to homepage with 403 Forbidden error! 
RewriteRule ^(.*)$ index.php [F,L] 
# 
########## End - Rewrite rules to block out some common exploits 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] 
RewriteRule (.*) index.php 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 

我不知道爲什麼,但如果我必須在URL中的點,服務器顯示未找到網址錯誤而不是重定向我到index.php。

我想用點來啓用網址,我該怎麼做?

回答

1

在此規則中

RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ 

這部分在請求URI /[^.]*塊的所有的點。嘗試刪除它或設置爲/[^/.]+

似乎這個規則(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)旨在只允許具有一組有限的擴展名[.php,.html,.htm,.feed,.pdf,.raw]的網址。但它的最後部分/[^.]*似乎是錯誤的。它檢查斜線後是否有除點以外的任何符號。但規則[^.]也可能包含斜槓。我想這部分的目的是在最後一節也允許沒有點的網址。所以我建議你使用/[^/.]+

正如你想在任何位置使用點,它是相同的,就像允許任何擴展。所以這條線沒有任何意義。

+0

它沒有工作。如果我簡單地刪除它,我得到** 500內部服務器錯誤**。如果我將它改爲'/[^/.]+'它一直說URL不存在 – BackSlash

+0

更新了答案 – claustrofob

+0

更新正是你寫的和我試過的,它不起作用 – BackSlash