2011-07-06 26 views
5

İki komut dosyaları var yeniden yazma kuralları ile bunu başarmak için:htaccess yeniden yazma XML site haritası ve kullanıcı dostu site haritası

Rewrite
oturup site.com/sitemap.php için
site.com/sitemap/

Rewrite
site.com/sitemap.xml İşte

site.com/xmlsitemap.php için e.com/sitemap denedim budur. Sorun, sitemap.xml dosyasının sitemap.php (GUI) için yeniden yazılmasıdır.

Options +FollowSymlinks 
RewriteEngine On 

RewriteRule sitemap.xml xmlsitemap.php 
RewriteRule sitemap sitemap.php 

# also tried using [L] option on both 
+0

Neler işe yaramıyor? Tek bir senaryo için tek bir yeniden yazmaya başladınız mı? – hakre

+0

Site.com/sitemap.xml dosyasını, yanlış olan sitemap.php dosyasına yeniden yazar. sitemap.xml, xmlsitemap.php dosyasına yeniden yazmalıdır. Her iki kural da diğeri yorumlandığında işe yarar, sorun birlikte çalışmıyorlar. – Chris

cevap

7

Her şeyden önce, [L] bayrağını yeniden ekleyin.

RewriteRule ^sitemap\.xml$ xmlsitemap.php [L] 
RewriteRule ^sitemap$ sitemap.php [L] 

L bayrak tetikleyebilir hala bir zaten uyum olursa ek kurallar çalıştırmak önlemek (ama olacak: Bir kural diğerinin yerini, ikinci olarak, yeniden yazma kuralları regex kontrol Bütün isteği gibi, onlara daha iyi eşleştirme yapmak bir iç yönlendirme, ayrıca bkz END flag instead of the L flag).

+0

Teşekkürler, çalışıyor. Site.com/sitemap/ adresine yeni bir kural ekledim. – Chris

İlgili konular