Ben aşağıdaki URL aşağıdaki dönüştürmek istediğiniz ...Kuralları nasıl maç için mod_rewrite alabilirsiniz sadece bir kez
http://localhost/http.mygarble.com/foundationsofwebprogramming/86
...:
RewriteRule ([^/]+)/([^/]+)$ php/blog.php?subdomain=$1&page=post&label=$2 [NC,L]
01:
Ben şu kuralla bunu başarmak düşündümAncak, bulduğum şey, bu kuralın art arda uygulanmış olmasıdır; bu da bir iç sunucu hatasıyla sonuçlanır. URI bu kuralı kullanarak dönüştürüldüğünde, ortaya çıkan URI'nin de kural ile eşleşeceğini ve dolayısıyla tekrar ad-infinitum uygulandığını anlıyorum.
Daha önceki (daha doğrusu oldukça anlayışlı) anlayışım, [L] bayrağının daha fazla işlemeyi durduracağıydı, ancak şimdi bunun sadece kuralların geri kalanının atlandığını ve yeniden yazma motorunu durdurmadığını anladığımı anladım. kurallar aracılığıyla tekrar.
Ben
RewriteCond $0 !php/blog.php
RewriteRule ([^/]+)/([^/]+)$ php/blog.php?subdomain=$1&page=post&label=$2 [NC,L]
... ya da daha spesifik normal ifade yazarak ... Aşağıdaki koşul ekleyerek bu sorunu çözebilirsiniz. Ama gerçekten yapmak istediğim, bu kural bir kez eşleştirildiğinde, yeniden yazma motorunun başka eşleşme girişiminde bulunmasını engellemenin bir yolunu bulmak. Mümkün mü?
Çok teşekkürler.
İkinci çözüm idealdir. İstediğim tek yönlendirmeler harici olanlardır, tüm kuralların yalnızca bir kez çalıştırılması gerekir. Teşekkürler. –
Maalesef cevabınızı oylamada bir itibara sahip değilim, belki birisi benim adıma yapar. Tekrar teşekkürler. –
@James Smith: Cevabımı kabul etmenize gerek yok, sadece "kabul etmelisiniz" (böylece yeşil işaretlemeye sahibim). – regilero