我甚至不知道我怎么能给这个问题起个标题,但问题来了:我在这个有服务的项目上使用seo友好的网址。服务链接看起来像; 他们被翻译成;另一方面,页面在其网址末尾没有.php扩展名,例如:或。.com/services/service-title-6.com/services.php?s=service-title-6.com/services.com/about-us实际问题出现在我处理此网站的多种显示语言之间的切换时。我刚刚使用了一个调用的get参数,我可以将其传递到任何页面,因为我在每个页面上都有一个php文件来处理它以及其他东西。在我的导航栏上,语言更改按钮链接是动态创建的,因此用户不必离开当前页面即可更改网站的语言。因此,如果您正在查看“关于”页面,则链接是:切换到英语。这是在 php 中生成的,类似于 .lang.com/about-us?lang=en$current_url . "?lang=en"但是,当我查看带有服务等参数的页面时,链接会被 .htaccess 转换为类似以下内容的内容: 。如您所知,第二个问号将作为参数被忽略并且不会传递。我需要使用 & 符号而不是问号。但是,当我只是在常规页面上执行此操作时,我不能单独使用 & 符号,因为它将被翻译成:..com/services.php?s=service-title-6?lang=en.com/about-us.php&lang=en很抱歉这个问题很长,但任何帮助和想法来处理这个问题将不胜感激。谢谢。
1 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
我通过将下一个查询字符串附加到我的URL来修复我的问题。我不知道mod_rewrite的旗帜。QSA
这是我对服务页面的原始规则:
RewriteRule ^services/(.*?)/?$ services.php?s=$1 [L]
我用以下代码替换了它:
RewriteRule ^services/(.*?)/?$ services.php?s=$1&lang=$2 [L,QSA]
我不知道它是否100%可靠,但它似乎完美地满足了我的需求,即使做了一些测试。
(感谢约瑟夫·西布勒-复职莫妮卡指导我回答一个有用的问题。
- 1 回答
- 0 关注
- 72 浏览
添加回答
举报
0/150
提交
取消