我的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替换为“多伦多”中的“迈阿密”,我应该了解关于多伦多的详细信息),并且在路由请求时也使您的开发人员更容易开发。 –