Apache-2.4
Apache 對單個規則不區分大小寫的 mod_rewrite
我正在使用 mod_rewrite 搜尋引擎友好的 URL。我有這條線很好用:
RewriteRule ^Pay ./pay.php [L] #Pay
http://example.com/pay
但如果訪客類型(注意小寫),我也想匹配。我嘗試過使用NC
,但出現 500 錯誤。我嘗試制定 2 個單獨的規則,一個大寫一個小寫,但又出現 500 錯誤。這可以使用正則表達式在一行上完成嗎?就像是:
RewriteRule ^([P-p])ay ./pay.php [L] #Pay
如果是這樣,正確的方法是什麼?如果不是,我怎麼能在不使用 mod_spelling 的情況下做到這一點?
RewriteRule ^Pay ./pay.php [L] #Pay
由於無限的重寫循環,您會收到 500 錯誤。如果您只是使上述不區分大小寫,那麼重寫的 URL 即。
/pay.php
匹配現在不區分大小寫的模式^Pay
等。在這種情況下,您可以簡單地使您的模式更具限制性並僅匹配“pay”,而不是任何簡單地以“pay”開頭的 URL 路徑。例如:
# Pay RewriteRule ^pay$ pay.php [NC,L]
我還刪除了susbstitution
./
上的前綴,這不是必需的。此外,Apache 不支持行尾註釋。但是請注意,在使這種重寫不區分大小寫時,它可能會導致重複的內容。