मैं एक पुनर्लेखन को स्थापित करने की कोशिश कर रहा हूं जिसे कोई भी प्राप्त करेगावे पृष्ठ जो समाचार फ़ोल्डर में हैं (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]
यह नियम अनुरोधों की अनदेखी करेगा
/news/index.shtml
तथा/news/template.shtml
.यह केवल अनुरोध करने पर भी कुछ नहीं करेगा
/news/
(जैसा कि मैंने बदल दिया है.*
सेवा मेरे.+
सुरक्षित रहने के लिए)।और कुछ भी फिर से लिखा जाएगा
/news/template.shtml?news=whatever
मैंने भी जोड़ा
QSA
किसी भी मौजूदा क्वेरी स्ट्रिंग को संरक्षित करने के लिए ध्वज (रेफरल डेटा रखने के लिए उपयोगी, उदा।/news/hello-pink-kitten?source=google
के रूप में फिर से लिखा जाएगा/news/template.shtml?news=hello-pink-kitten&source=google
)