繁体   English   中英

htaccess重定向查询字符串+强制重定向

[英]Htaccess redirect query string + force redirect

这是我得到带有2个OPTIONAL参数的字符串的交易

/index.php?lang=en&p=about

可能是两种方式

/index.php?p=about&lang=bg

并且p参数是可选的,它可以不带plang一个

到目前为止,我已经能够将其中之一从(1) /index.php?p=about(2) /about它不执行的操作,而我只能用另一种方法强制它重定向(1)(2) 当您键入(1)将您重定向到(2)时 我用[R] ..做的相反。

我对htaccess模式和东西真的很秃头,所以更棘手的问题是关于第二查询lang因为您假设它是关于更改语言的,所以我必须做到

/index.php?lang=en&p=about/en/about ,还有/index.php?p=about&lang=en导致/en/about ,当您将整个查询键入到时,这些重定向将被强制执行重定向到seo友好版本。

另外,当您没有lang也应该使用默认的en

我现在正在测试各种示例重定向,但是到目前为止,没有任何事情可以正常工作。

您可以使用以下规则以任何顺序支持查询参数:

RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING}     (?:^|&)lang=([^&]*)
RewriteCond %1::%{QUERY_STRING} (.*?)::(?:|.*&)p=([^&]*)
RewriteRule ^(index\.php)?$ /%1/%2? [L,NC,R=302]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)/(\w+)/?$ index.php?lang=$1&p=$2 [L,QSA]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM