我的URL結構是:SEF網址的.htaccess和mod_rewrite的WHEN屬性丟失
/index.php?lang=en&state=FL&county=Miami-Dade&place=Miami&street=Collins&zip=33140
其中lang,州,縣,地方,街道和拉鍊都在一個層次 - 郎是最高級別 - 含以下所有級別。尋找一個SEF URL,如:
/en/FL/Miami-Dade/Miami/Collins/33140
,我可以的.htaccess和mod_rewrite的處理在各級的URL,但在我的情況下給出,如果我給任何URL像
/index.php?lang=en&street=Collins&zip=33140
/index.php?zip=33140
/index.php?state=FL&place=Miami&zip=33140
它會很好地工作,努力實現用相同的URL海基會:
/en/Collins/33140
/33140
/FL/Miami/33140
在這種情況下
中的.htaccess將讀取URL海基會並採取第一個參數爲郎,第二個州和3日爲縣,這將間仔細看看上面的三個例子(實際的軟件工作時數據略有不同,而不是這裏介紹的 - 不能使用預定義的數據庫)。
一種解決方案是使用ISO代碼分別解決lang和狀態參數,並從左到右讀取其餘部分,假設沒有參數被跳過,這總會給出肯定的結果。如果有人會錯過一個參數,則不會生成任何結果,並且可以使用PHP處理錯誤。
任何人都會遇到類似的情況,關於如何解決這個問題的任何想法,而不涉及所有現有可能性的數據庫?謝謝!
你如何確定你的海基會網址哪部分屬於哪個參數?對於一個人來說,這可能是可能的,但對於一臺機器來說,不可能區分'/ en/Collins/33140'和'/ FL/Miami/33140'。請重新考慮您的網址格式。 – Sumurai8
我會說強制一個URL結構並堅持下去。它使得URL更易於記憶和「可破解」(即,如果我將URL替換爲「多倫多」中的「邁阿密」,我應該瞭解關於多倫多的詳細信息),並且在路由請求時也使您的開發人員更容易開發。 –