2013-12-21 19 views
1

這裏是我的.htaccess代碼如何通過圖像URL作爲參數在.htaccess

Options all -Indexes 

<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 

RewriteEngine On 
RewriteBase/

RewriteRule ^thumb/(.*)$ thumb.php?imagePath=$1 [B] 

</IfModule> 

如果我輸入網址爲http://mydomain.com/thumb/image1.jpg那麼它傳遞給thumb.php?imagePath=image.1,其工作的罰款。

假設如果我輸入URL作爲http://mydomain.com/thumb/http://otherwebsite.com/images/image1.jpg

則其表示404錯誤。請幫我理清這個問題

,我用encodedurl太喜歡這個http://mydomain.com/thumb/http%3A%2F%2Fotherwebsite.com%2Fimages%2Fimage1.jpg

同我得到404錯誤。請幫我解決這個問題。

回答

1

要使用的參數不同,需要使用使用THE_REQUEST變量URI捕獲http://THE_REQUEST變量,代表你的瀏覽器Apache接收到原始請求

試試這個規則:

RewriteCond %{QUERY_STRING} ^$ 
RewriteCond %{THE_REQUEST} \s/+thumb/(\S+) [NC] 
RewriteRule^thumb.php?imagePath=%1 [B,L,NE] 
+0

非常感謝你的工作:)但我有一個小小的懷疑是有htaccess代碼有安全漏洞?它會允許黑客的東西? – rkaartikeyan

+1

不,我不認爲這有任何風險,如果你的thumb.php只是做圖像顯示工作。很高興它解決了。 – anubhava

1

爲什麼在規則的末尾添加/

試試這個:

Options all -Indexes 

<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 

RewriteEngine On 
RewriteBase/

RewriteRule ^thumb/(.*)$ thumb.php?imagePath=$1 [B] 

</IfModule> 
+0

真的感謝您的快速回復,可惜還是我有同樣的404錯誤:S – rkaartikeyan

+0

您可以檢查您的access.log文件看到究竟會發生什麼? – Kevin

+0

error.log文件爲空。並且我多次嘗試了url,仍然error.log爲空 – rkaartikeyan