2017-06-11 27 views
7

मेरे .htaccess फ़ाइल इस तरह दिखता है:तैनाती सर्वर .htaccess फ़ाइल की उपेक्षा जड़ पर

RewriteEngine on 
RewriteBase/
options +FollowSymLinks 
RewriteRule ^en/users/profile/?$ [F,NC] 
RewriteRule ^en/users/profile/?([0-9]+)?/?$ en/user/index.php?id=$1 
RewriteRule ^en/users/profile/([0-9]+)/photo/? en/user/index.php?pageID=photoEdit&id=$1 

RewriteCond %{HTTP_REFERER} !^http://example\.ge/?.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://example\.dev/?.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://localhost/?.*$ [NC] 
RewriteRule \.(gif|jpe?g|png|bmp)$ - [F,NC] 

यह स्थानीय होस्ट पर पूरी तरह से कहीं और भेजें सकता है लेकिन यह तैनाती सर्वर पर नजरअंदाज कर दिया है! सर्वर के phpinfo(); है! etc folder

+2

आपके 'phpinfo()' आउटपुट से ऐसा लगता है कि परिनियोजन वातावरण 'लाइटस्पीड' वेब सर्वर अपाचे नहीं चल रहा है। आप इस लिंक को देखना चाह सकते हैं: https://www.internetearnings.com/how-to-check-mod_rewrite-module-in-apache-litespeed-is-loaded/ – anubhava

+0

आपका पहला 'रिवाइटरूल' निर्देश एक _substitution_ गुम है और इरादे के रूप में काम नहीं करेगा - '/ en/users/profile/'का अनुरोध करते समय आपको एक त्रुटि मिलेगी। लेकिन आपने वास्तव में उन यूआरएल को नहीं बताया है जिन्हें आप रूटिंग कर रहे हैं। – MrWhite

+0

यह सही है। कृपया एक उत्तर दें ताकि मैं इसे स्वीकार कर सकूं। प्रिय MrWhite –

उत्तर

1
RewriteRule ^en/users/profile/?$ [F,NC] 

नहीं क्यों अपने .htaccess फ़ाइल पर ध्यान नहीं दिया जा रहा है के कारण (अन्य उत्तर पहले से ही उस के लिए समाधान दे दिया है की जाँच के संबंध में, सर्वर कॉन्फ़िगरेशन में AllowOverride निर्देश), लेकिन आप उपर्युक्त निर्देश में वैध प्रतिस्थापन खो रहे हैं। /en/users/profile/ के लिए अनुरोध प्रतिबंधित नहीं होगा और संभवतः केवल एक त्रुटि/404 में परिणाम होगा।(। प्रतिस्थापन के लिए बस एक भी हाइफन)

RewriteRule ^en/users/profile/?$ - [F,NC] 

RewriteCond %{HTTP_REFERER} !^http://example\.ge/?.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://example\.dev/?.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://localhost/?.*$ [NC] 
RewriteRule \.(gif|jpe?g|png|bmp)$ - [F,NC] 

आप भी अपनी "Hotlink संरक्षण बढ़ना चाहिए:

यह कुछ तरह की आवश्यकता होगी "निर्देश (ऊपर) से पहले आपके रूटिंग निर्देश। अन्यथा, यह संभव है (यूआरएल प्रारूप के आधार पर) यूआरएल से पहले रूट किया गया है हॉटलिंक सुरक्षा अनुरोध को अवरुद्ध करने में सक्षम है।

3

आप शायद .htaccess फ़ाइलें सर्वर पर सक्षम नहीं है:

इस आदि फ़ोल्डर है। AllowOverride निर्देश पर एक नज़र डालें। अपने वर्चुअल होस्ट

AllowOverride all 
+0

क्षमा करें क्योंकि मैं php के लिए नया हूं मुझे नहीं पता कि वर्चुअलहोस्ट के लिए फ़ाइल ढूंढना था !!! –

+0

यह आपके अपाचे सर्वर के लिए मुख्य कॉन्फ़िगरेशन है, इसलिए यह आपके सर्वर पर निर्भर करता है और यह कैसे प्रबंधित होता है। आप मेजबान से पूछ सकते हैं या मुझे बता सकते हैं कि आपका सर्वर सेटअप क्या है। – SuperDuperApps

+0

अच्छी तरह से होस्ट किसी अन्य देश में किसी और देश द्वारा खरीदा जाता है। और समर्थन पोर्टल सभी georgi में है और मैं इसे समझ में नहीं आता। और मेरा संपर्क वेबसाइट सामान के बारे में कुछ भी नहीं जानता है और खरीदार अंग्रेजी में बात नहीं कर सकता: (!!! –

0

संपादित करें:: अपने सर्वर पर

1. लॉग इन आप अपने <VirtualHost> के दस्तावेज़ रूट के लिए <Directory> ब्लॉक करने के लिए कुछ इस तरह जोड़ सकते हैं।

2. सीडी/etc/apache2/साइटों से उपलब्ध/

3. आप अपने डिफ़ॉल्ट संपादित कर सकते हैं या web1 या ... आभासी-मेजबान .conf - फ़ाइल। नैनो web1.conf (...) टाइप करें और अपनी फ़ाइल संपादित करें।

<VirtualHost *:80> 
    ServerName yoururl.com  
    ServerAdmin [email protected] 
    DocumentRoot /var/www/web1/htdocs/ 
    <Directory /var/www/web1/htdocs/> 
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride all 
      Order allow,deny 
      allow from all 
    </Directory> 
    ErrorLog /var/log/apache2/error.log 
    LogLevel warn 
    CustomLog /var/log/apache2/access.log combined 
    ServerSignature On 
</VirtualHost> 

4. अपने Apache2 बंद करो और उसे पुन: प्रारंभ - /etc/init.d/apache2 बंद करो और /etc/init.d/apache2 शुरू करते हैं।

5. अपने रूट निर्देशिका में अपने .htaccess अपलोड करें और यह परीक्षण करें।

आप CloudFlare का उपयोग कर, तो सेटिंग्स SSL सेटिंग्स में "हमेशा HTTPS का उपयोग" में एक विकल्प है। तुम भी अग्रेषण यूआरएल कार्रवाई उपयोग कर सकते हैं:

http://yoururl.fqdn/* 
redirected with a 301 response code to 
https://www.yoururl.fqdn/$1 
+0

Thx। लेकिन यह एक साझा सर्वर है। –

+0

मैंने आदि फ़ोल्डर पूर्वावलोकन के लिंक के साथ प्रश्न अद्यतन किया है। –

+0

तो, आपके पास एसएसएच के माध्यम से कोई पहुंच नहीं है? आप अपने सर्वर को PUTTY के माध्यम से कनेक्ट नहीं कर सकते हैं या ऐसा कुछ? – Abrapata

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