2016-04-06 18 views
0

Bir Apache mod_rewrite ile sorun yaşıyorum. .htaccess dosyam "/ posts" adresinde bulunur. İşte içeriği var:mod_rewrite ikamesi çalışmıyor

RewriteEngine on 
RewriteBase/
RewriteRule ^.*\.html$ ?url=/posts/2014/1215A.html [QSA] 

gelen istek "/posts/2014/1214A.html" içindir. Bu isteğin "/ ?url=/posts/2014/1215A.html" olmak için yeniden yazılmasını istiyorum. Normal ifadenin eşleştiği görülür. Sorun ikame ile görünüyor. Aslında her şey çalışıyordu; ama, bir şekilde bir şeyleri mahvedemeliydim. Herkes bunu nasıl düzelteceğimi söyleyebilir mi? Teşekkürler.

... doug 

cevap

0

Bu çalışması gerekir:

RewriteEngine on 
RewriteBase /posts/ 
RewriteCond %{REQUEST_URI} !^/posts/index 
RewriteRule ^.*\.html$ ?url=/posts/2014/1215A.html [QSA] 
+0

Ne yazık ki, işe yaramadı. Kodunuz çalışmayan kodumdan sadece 2 açıdan farklı görünüyor: (1) durumu ekliyor; ve (2) RewriteBase'i değiştirir. Durumun neden emin değilim; Ancak, test edilen isteklerde yine de kullanılmayacak. Dolayısıyla, geçici olarak yalnızca RewriteBase'de farklıyız. Bence RewriteBase'in önde/önünde ön sıralarda yer alması gerekiyor. Bahsettiğim gibi, bu çalışmayı gerçekleştirdim ve çalıştığı zaman, bu şekilde çalıştı. Aslında, neden çalışmayı bıraktığını anlamıyorum. Giriş için teşekkürler. – user3311045

+0

@ User3311045 htaccess nerede bulunuyor? ve URL'ye gittiğinizde ne olur? – starkeen

+0

.htaccess/posts konumunda bulunuyor. Açıkçası, yeniden yazma olmadan, gelen talepte belirtilen yerdeki belge basitçe gösterilecektir. Yeniden yazmanın amacı, bir ileticiye yönlendirmektir. – user3311045