2012-03-14 12 views
7

यहाँ क्या मैं अपने .htaccess में अब के लिए है और यह भविष्य में काम करना चाहिए:.htaccess PHP स्क्रिप्ट के लिए छवि फ़ाइल को फिर से लिखने

RewriteEngine On 

RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

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

सवाल यह है:

मैं इस पुनर्लेखन कैसे कर सकते हैं /tmp/some_image.png -> /image.php?file=some_image.png

मैंने अपना खुद का नियम बनाने की कोशिश की है, लेकिन सफलता के बिना।

धन्यवाद।

उत्तर

13

क्या आपके वेब-सर्वर द्वारा एक निर्देशिका सुलभ है? मुझे आशा है कि यह एक अलग/tmp फ़ोल्डर है और सर्वर का वास्तविक/tmp नहीं है क्योंकि यह एक सुरक्षा जोखिम होगा।

RewriteRule ^/tmp/([^\.]+)\.png$ /image.php?file=$1.png [NC,L] 

आप के रूप में अन्य एक्सटेंशन के लिए जांच कर सकता है:

वैसे भी अगर छवि एक भौतिक फ़ाइल तो है आप आपका रीराइट HTTPS के लिए मजबूर करने के बाद और शर्तों की जाँच अगर यह एक फ़ाइल या निर्देशिका है पहले इस लगाने की जरूरत है अच्छी तरह से:

RewriteRule ^/tmp/([^\.]+)\.(png|jpg|gif)$ /image.php?file=$1.$2 [NC,L] 

या यदि आप कोई परवाह नहीं है (। सब कुछ अपने tmp फ़ोल्डर में एक छवि है हालांकि मैं इस की सिफारिश नहीं होगा)

RewriteRule ^/tmp/(.*)$ /image.php?file=$1 [NC,L] 

यदि यह कोई भौतिक फ़ाइल नहीं है तो आप इनमें से किसी एक को अपने नियमों के अंत में डाल सकते हैं।

+0

धन्यवाद, महान जवाब देने के लिए चला जाता है! – user973254

+0

यह नियम 'रिवाइट्रूल ^/tmp/([^ \।] +) \। (Png | jpg | gif) $ /image.php?file=$1.$2 [NC, L]' अगर छवि में कोई काम नहीं है तो काम नहीं करेगा '.' इसके फ़ाइल नाम में। 'file.name.jpg' –

+0

'रिवाइट्रूल ^/tmp/(। +) \। (png | jpg | gif) $ index.php? file = $ 1. $ 2 [NC, L]' यदि आप अनुमति देना चाहते हैं तो ' एकाधिक नाम '' के साथ फ़ाइल नाम –

संबंधित मुद्दे