2008-11-16 22 views
12

असल में मैं किसी साइट पर काम शुरू करने जा रहा हूं और मुझे कुछ ऐसा चाहिए जो मैं अपनी .htaccess फ़ाइल (या अन्यत्र) में जोड़ सकता हूं जो इस छद्म कोड की तरह काम करेगा: (मेरे आईपी 127.0.0.1 की जगह में होगा)मुझे छोड़कर सभी आगंतुकों को रीडायरेक्ट करना चाहते हैं

if (visitors_ip <> 127.0.0.1) 
    redirectmatch ^(.*)$ http://www.example.com/under-construction.html 

उम्मीद है कि है कि समझ में आता है ...

उत्तर

20

कि something like होगा:

RewriteEngine On 
RewriteBase/
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1 

RewriteCond %{REQUEST_URI} !/mypage\.html$ 

RewriteRule .* http://www.anothersite.com/mypage.html [R=302,L] 

Andrew के रूप में अंक बाहर,% { निवेदन_ यदि आप एक ही डोमेन पर रीडायरेक्ट करते हैं तो यूआरआई} स्थिति अनंत लूप से बचाती है।

रूप Xorax टिप्पणी almost 9 years later:

आप REMOTE_HOST उपयोग नहीं करना चाहिए, यह कई मामले में असफल हो जायेगी। आपको REMOTE_ADDR का उपयोग करना चाहिए।
CF "difference between REMOTE_HOST and REMOTE_ADDR"

+0

अब आईपीवी 6 तस्वीर में है, मुझे लगता है कि ऐसे स्थानीय मामले हैं जहां स्थानीयहोस्ट आईपी पता :: 1 के रूप में आता है, हमेशा 127.0.0.1 नहीं - बिल्कुल सही नहीं है कि क्यों और क्यों, लेकिन मुझे लगता है कि इसे संभालने के लिए आपको एक अतिरिक्त शर्त की आवश्यकता है: 'रिवाइटकंड% {REMOTE_HOST}!^:: 1' कोलों को एस्केप की आवश्यकता नहीं होनी चाहिए - रीराइट इंजन इंजन रेगेक्स के लिए विशेष वर्ण नहीं, मुझे विश्वास नहीं है। –

+0

आपको REMOTE_HOST का उपयोग नहीं करना चाहिए, यह कई मामलों में विफल हो जाएगा। आपको REMOTE_ADDR का उपयोग करना चाहिए। https://stackoverflow.com/questions/3812166/difference-between-remote-host-and-remote-addr – Xorax

+0

@Xorax धन्यवाद। मैंने अपने 9 साल के जवाब में संशोधन किया है। – VonC

0

इस दृष्टिकोण के साथ सावधान रहें।

मुझे एक्सेस सीमित करने के लिए आईपी आधारित दृष्टिकोण लेकर और मेरे आईपी पते पर पट्टे खोने से जला दिया गया है।

बेशक आप हमेशा सवाल में बॉक्स में SSH और .htaccess फाइल फिर से बदल सकते हैं, लेकिन आतंक के 5 मिनट आप यह पता लगाने की अभी क्या हुआ वास्तव में मज़ा अगर आप इसे उम्मीद नहीं कर रहे हैं नहीं कर रहे हैं की कोशिश करते हुए होना।

मैं आपकी विकास साइट तक पहुंचने के लिए प्रमाण-पत्रों का अनुरोध करने के लिए .htaccess (एक htpasswd फ़ाइल के साथ संयोजन) का उपयोग करने की बजाय अनुशंसा करता हूं।

कि का एक अच्छा उदाहरण यहाँ है: http://aplawrence.com/foo-web/htaccess-authentication.html

+0

हां धन्यवाद, अच्छा बिंदु लेकिन मैं इस लाइन को एक या दो सप्ताह से अधिक समय तक नहीं रखूंगा। –

+0

अपनी नेटवर्क की स्थापना की है के आधार पर आपका पट्टा बार की तुलना में काफी कम हो सकता है। –

3

यहाँ समाधान मैं, का उपयोग करते हुए ध्यान दें कि सिवाय इसके कि VonC के लिए समान है समाप्त हो गया है उसकी वजह से अनंत लूप यदि आप एक ही डोमेन पर रीडायरेक्ट करने के लिए चुना है।

RewriteEngine On 
RewriteBase/
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 
RewriteCond %{REQUEST_URI} !/coming-soon\.html$ 
RewriteRule .* http://www.andrewgjohnson.com/coming-soon.html [R=302,L] 

यह भी ध्यान दिया जाना चाहिए कि 302 एक अस्थायी कदम है और कुछ भी नहीं के बजाय इस्तेमाल किया जाना चाहिए या 301.

+0

मैंने पूरी तरह से अपने उत्तर में अपनी अतिरिक्त पुनर्लेखन स्थिति को जोड़ा है। – VonC

2
<IfModule mod_rewrite.c> 
RewriteEngine On 
# Redirect all except allowed IP 
ReWriteCond %{REMOTE_ADDR} !^000\.000\.000\.001$ 
RewriteCond %{REMOTE_ADDR} !000\.000\.000\.002$ 
ReWriteCond %{REMOTE_ADDR} !^000\.000\.000\.003$ 
RewriteRule (.*) http://YourOtherWebsite.com/$1 [R=301,L] 
</IfModule> 

इस ifmodule अपने वर्डप्रेस में 3 आईपी पते को छोड़कर हर किसी रीडायरेक्ट करेगा से पहले सवाल।

यदि आप अपना आईपी पता बदलते हैं तो आप साइट पर बस ftp और .htaccess फ़ाइल को संपादित करें।

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