我有这个接收语言代码的.php文件和一个句子:
domain.com/sentence.php?lang=en&sentence=the house is big
此外,这是我目前的.htaccess规则:
RewriteRule ^sentence/([a-z]{2,3})/([^/]{3,})$ /sentence.php?lang=$1&sentence=$2 [QSA,L]
因此,如果用户访问:
domain.com/sentences/en/the+house+is+big
......它会得到很好的处理。现在的问题是:如果句子只包含一个单词(没有空格,点,逗号,!?等),那么它应该由不同的word.php而不是sentence.php处理; e.g:
domain.com/sentences/en/house
最后一个网址请求应由word.php处理
我知道我可以很容易地验证句子内部.php,但我认为如果我通过.htaccess处理它会更好。有任何想法吗?谢谢!
答案 0 :(得分:0)
你可以像这样调整你的正则表达式:
RewriteRule ^sentence/([a-z]{2,3})/(\w{3,})/?$ /word.php?lang=$1&sentence=$2 [QSA,L]
RewriteRule ^sentence/([a-z]{2,3})/([^/]{3,})$ /sentence.php?lang=$1&sentence=$2 [QSA,L]
第一个正则表达式模式为\w{3,}
,它将domain.com/sentences/en/house
路由到word.php
,剩余的多个单词将路由到sentence.php
。