سؤال

بالنسبة لخادم التطوير الخاص بنا، لدي واجهة حيث يمكن للأشخاص إضافة عنوان IP الخاص بهم مؤقتًا إلى قائمة عناوين IP المسموح بها.إذا حاول شخص ما الوصول إلى عنوان URL من عنوان IP غير موجود في القائمة، فسيتم إعادة توجيهه إلى واجهة إضافة IP.ولكن بمجرد إضافة عنوان IP، فإن عنوان url الأصلي الذي تم طلبه لا يزال يعيد التوجيه إلى الواجهة (قام المتصفح بتخزين عملية إعادة التوجيه مؤقتًا، وهذا أمر مربك لعملائنا).

تتم إعادة التوجيه عن طريق تحديد ErrorDocument.هل يمكنني فرض uncache عليه؟

htaccess الخاص بي في الجذر:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(!www\.)?(.+)
RewriteCond %{HTTP_HOST} ^(.*)\.SITENAME\.com
RewriteRule ^(.*)$ http://SITENAME.com/%1/$1 [L,P,NC,QSA]

#####

ErrorDocument 403 http://xs.SITENAME.com

order deny,allow
deny from all

allow from 12.345.678.90 #1389452253
allow from 12.345.678.91 #1389461806
allow from 12.345.678.92 #1389486472
allow from 12.345.678.93 #1389550179
allow from 12.345.678.94 #1389618643

يحرر:يبدو أن الإجابة المقبولة تعمل في المقام الأول، ولكن في بعض المناسبات لسبب ما لم تكن كذلك.كان الحل الأفضل هو تغيير ملف .htaccess في كل مرة تتم فيها إعادة توجيه شخص ما إلى صفحة الخطأ.(افتح .htaccess، وقم بتغيير سطر التعليق إلى #random_string (توقيت يونكس، على سبيل المثال)) وهذا يجعل المتصفح يعيد فحص .htaccess

هل كانت مفيدة؟

المحلول

يمكنك تجربة استخدام هذه القواعد، ولكن لسوء الحظ إذا قرر المتصفح تخزين طلب مؤقتًا، فلا يوجد أي شيء يمكننا القيام به لذلك قوة لا.

FileETag None
<IfModule mod_headers.c>
    Header unset ETag
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>

يمكنك أيضًا تغليف هذه القواعد داخل ملف <FilesMatch> أو <Files> لاستهداف عنوان URL واحد أو عدد قليل فقط:

    <FilesMatch "\.(htm|html)$">
        # The rules from above
    </FilesMatch>

    <Files index.php>
        # The rules from above
    </Files>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top