"छिपाएँ"। Html फ़ाइल एक्सटेंशन nginx rewrites का उपयोग कर


15

मैं nginx के माध्यम से एक स्थैतिक साइट की सेवा कर रहा हूं, और मेरा लक्ष्य URL की तरह दिखने वाले को बदलना है:

http://foo.com/bar.html

साथ में

http://foo.com/bar

कुंजी कोई अनुगामी स्लैश नहीं है। मैं वर्तमान में स्थान उपनामों का उपयोग करके कुछ ऐसा ही कर रहा हूं, लेकिन यह थकाऊ है क्योंकि इसमें हर फ़ाइल के लिए स्थान ब्लॉक की आवश्यकता होती है, और यह एक अनुगामी स्लेश को भी जोड़ता है क्योंकि nginx एलियंस को निर्देशिका के रूप में देखता है:

    location / {
        root    /srv/www/foo/public_html;
        index   index.html;
    }

    location /bar1 {
        alias /srv/www/foo/public_html/;
        index bar1.html;
    }

    location /bar2 {
        alias /srv/www/foo/public_html/;
        index bar2.html;
    }

और इसी तरह। मैंने डॉक्यूमेंट्स के माध्यम से रीराइट्स पर पढ़ा है, और मैं यह नहीं बता सकता कि जो कुछ मुझे करने की आवश्यकता है, उसमें मैं क्या कह सकता हूं। मैं अपाचे पृष्ठभूमि से नहीं आ रहा हूं; nginx वेब सर्वर में मेरा पहला फ़ॉरेस्ट है, इसलिए मुझे यकीन है कि मैं कुछ स्पष्ट याद कर रहा हूं क्योंकि मेरी HTTP पृष्ठभूमि कमजोर है। आपकी किसी भी सहायताके लिए पहले से शुक्रिया।

जवाबों:


16

try_files आपको जो चाहिए वो होना चाहिए।

कुछ इस तरह:

try_files $uri.html $uri $uri/ =404;

1
यह काम करता है, मामूली अपवाद के साथ कि $ uri.html 500 का कारण बन रहा था। मुझे "$ {uri .html" का उपयोग करना था।
डग स्टीफन

4
इसे बदलना try_files $uri.html $uri/ =404;बेहतर होगा एसईओ बुद्धिमान, क्योंकि आपके पास दो यूआरएल नहीं होंगे foobar.com/bar और foobar.com/bar.html जो एक ही संसाधन की ओर इशारा करते हैं।
खाजा मिनहाजुद्दीन

5

@ काजा से टिप्पणी के अनुसार, सबसे अच्छा जवाब है:

try_files $uri.html $uri/ =404;

ताकि संसाधन की केवल एक ही प्रति (जो कि .html एक्सटेंशन के साथ हो) परोसी जाए। आप डुप्लिकेट सामग्री परोसने वाले कई URL पर अपनी लिंक की शक्ति को विभाजित नहीं करना चाहते हैं। यहां प्रलेखन का पता लगाएं ।


मैंने यह कोशिश की। try_files $ uri.html $ uri / = 404; यह myurl / इंडेक्स को नामांकित किए बिना मुखपृष्ठ के लोडिंग को तोड़ दिया। .ss, .js आदि का लोडिंग भी तोड़ दिया
आकांक्षीगुरु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.