我对CakePHP和php rewrite_mod有很多了解,但是我对如何使用它感到非常困惑,因为我对正则表达式一无所知。我怎么会有这样的东西?
mywebsite.com/ zh / => mywebsite.com/?lang = zh- CN
mywebsite.com/ zh / about => mywebsite.com/about/?lang = zh- CN
mywebsite.com/ zh - CN / search /?query = Hello + World => mywebsite.com/search/?query = Hello + World&lang = zh-CN
所以实际上我的文件是这样的:
public_html/about/index.php
public_html/search/index.php
public_html/index.php
但我假装像
public_html/en/about/index.php
public_html/en/search/index.php
public_html/en/index.php
并且需要保存URL,以及通过GET传递的参数,我不知道如何在.htaccess中设置如此复杂的url控制器
我也尝试遵循此方法但没有退出,是否有任何示例项目?cakephp 3参数网址
本质上,您需要重新排列请求URL。这意味着,您必须分别捕获(...)
各部分,然后将它们放在一起进行替换$...
。您还想保留一个现有的查询字符串,这需要使用该QSA|qsappend
标志。的RewriteCond
,以防止有一个重写循环。如果该规则应用一次,则不应再次使用。
RewriteCond %{QUERY_STRING} !lang=
RewriteRule ^(..)(.*)$ $2?lang=$1 [L,QSA]
要了解有关正则表达式的更多信息,请参阅Apache-Regular Expressions。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句