/ / प्रतीक "%" वाले URL अंत में http त्रुटि करते हैं, इसे htaccess के साथ कैसे रोका जाए? - .htaccess

अंत में प्रतीक "%" वाले यूआरएल http त्रुटि बनाते हैं, इसे htaccess से कैसे रोकें? - एचटीएसीएसीएएस

मुझे अपने acces_log से अपने कुछ URL के साथ संदेह है। बाहरी साइटों से कुछ URL हैं जो मुझे पसंद कर रहे हैं http://domain.com/url_name.htm% (हाँ,% के साथ)।

तब ... मेरा सर्वर http त्रुटि देता है, मुझे इस नकली URL को सही तरीके से पुनर्निर्देशित करना होगा, और मैंने htaccess में सोचा।

मुझे केवल URL के अंतिम वर्ण में% प्रतीक का पता लगाना है, और इसके बिना पुनर्निर्देशित करना है। http://domain.com/url_name.htm% -> http://domain.com/url_name.htm

मैं यह कैसे कर सकता हूँ? मैं कुछ नमूनों के साथ कोशिश कर रहा था? प्रतीक है, लेकिन मैं भाग्यशाली नहीं है।

धन्यवाद!

उत्तर:

उत्तर № 1 के लिए 1

मैं पहले से ही गलती पाया ...

ऐसा लगता है कि कुछ विकृत URL "vhost पर नहीं जाते हैं, तो ये याचिकाएँ" .htaccess नहीं पढ़ती हैं।

इसे हल करने का एकमात्र तरीका, httpd में जोड़ रहा है।ErrorDocument 400 निर्देश को मानें ... अलग-अलग vhosts वाले सर्वर के लिए सबसे अच्छा विकल्प नहीं है .. क्योंकि सभी की इच्छा समान व्यवहार की है ... लेकिन मुझे लगता है कि इस मामले के लिए एकमात्र तरीका है।

से उद्धरण अपाचे प्रलेखन:

यद्यपि अधिकांश त्रुटि संदेश ओवरराइड किए जा सकते हैं,कुछ परिस्थितियाँ ऐसी होती हैं जहाँ> आंतरिक संदेशों का उपयोग ErrorDocument की स्थापना की परवाह किए बिना किया जाता है। विशेष रूप से, अगर> विकृत अनुरोध का पता चला है, तो सामान्य अनुरोध प्रसंस्करण तुरंत रोक दिया जाएगा और> आंतरिक त्रुटि संदेश वापस आ जाएगा। यह सुरक्षा समस्याओं से निपटने के लिए आवश्यक है> खराब अनुरोधों के कारण।

फिर भी धन्यवाद!!


जवाब के लिए 0 № 2

यह पृष्ठ .htaccess नियमों के बारे में सुपर उपयोगी है। http://www.helicontech.com/isapi_rewrite/doc/RewriteRule.htm

मैंने इसके लिए कुछ समाधान देखे जो एक छोटी php स्क्रिप्ट का भी उपयोग करते हैं। IE यह एक की जगह #

.htaccess
RewriteRule old.php redirect.php?          url=http://example.com/new.php|hash      [R=301,QSA,L]

redirect.php
<?php
$new_url = str_replace("|", "#", $_GET["url"]);
header("Location: ".$new_url, 301);
die;
?>