2
我现在有一个非常简单的modrewrite文件,该文件将URL映射到不同的PHP页面有可能GET变量:全球规则适用于所有现有规则
RewriteRule ^grant$ about.php?p=4 [L]
RewriteRule ^contact-people-([A-za-z0-9-]+)$ about.php?p=5&to=$1 [L]
RewriteRule ^([a-z0-9-]+)-media$ media-gallery-element.php?prettyid=$1 [L]
#etc .... it goes on for perhaps 200 or so entries
我想有一个全球性的语言变量,它是在网址中,我想知道如何巧妙地调整我的modrewrite文件来处理这个。我可以通过加倍我的项目做到这一点,只需添加更多的规则,使得第一个上面被更改为:
RewriteRule ^grant$ about.php?p=4&lan=en [L]
RewriteRule ^([a-z]+)/grant$ about.php?p=4&lan=$1 [L]
第一行是一样的,并会默认为英语(en),然后在第二行处理其他语言代码,es,fr,de等。所以我可以这样做,但似乎有更好的方法来做到这一点,而不会使我的条目翻倍。基本上,我想要接受我的所有请求,在请求uri的开头寻找([a-z] +)/,然后将它作为GET变量lan。
我该如何巧妙地做到这一点?
你有一个有限语言列表? –
嗯,我在Apache中使用mod-rewrite,而php是我选择的语言 – Landon
不是编程语言:人类语言。像“lan = xx”,其中xx是语言。 –