/ अपवादों के साथ अपाचे पुनर्लेखन निर्देशिका - अपाचे, .htaccess

अपाचे रिवाइट निर्देशिका अपवादों के साथ - अपाचे, .htaccess

मैं एक पुनर्लेखन को स्थापित करने की कोशिश कर रहा हूं जिसे कोई भी प्राप्त करेगावे पृष्ठ जो समाचार फ़ोल्डर में हैं (index.shtml और template.shtml के अपवाद के साथ (जहाँ template.shtml में एक परिवर्तनशील समाचार होगा))। अन्य सभी पृष्ठों को template.shtml? समाचार / नाम)।

मेरे पास अब तक क्या है:

RewriteCond %{REQUEST_URI} !^/news/((index|template).shtml)?$
RewriteRule ^news/(.*) /news/template.shtml?news=$1

यह मुख्य / समाचार / को बाहर करने के लिए लगता है, लेकिन टेम्पलेट नहीं।

मैं इसे कैसे हल करूं? किसी भी सहायता की सराहना की जाएगी।

धन्यवाद।

उत्तर:

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

अच्छा - यह मेरे लिए ठीक काम करता है:

RewriteCond %{REQUEST_URI} !^/news/(index|template).shtml$
RewriteRule ^news/(.+)$ /news/template.shtml?news=$1 [L,QSA]
  1. यह नियम अनुरोधों की अनदेखी करेगा /news/index.shtml तथा /news/template.shtml.

  2. यह केवल अनुरोध करने पर भी कुछ नहीं करेगा /news/ (जैसा कि मैंने बदल दिया है .* सेवा मेरे .+ सुरक्षित रहने के लिए)।

  3. और कुछ भी फिर से लिखा जाएगा /news/template.shtml?news=whatever

  4. मैंने भी जोड़ा QSA किसी भी मौजूदा क्वेरी स्ट्रिंग को संरक्षित करने के लिए ध्वज (रेफरल डेटा रखने के लिए उपयोगी, उदा। /news/hello-pink-kitten?source=google के रूप में फिर से लिखा जाएगा /news/template.shtml?news=hello-pink-kitten&source=google)