这是我用2个可选参数获得此字符串的交易
/index.php?lang=en&p=about
可能是两种方式
/index.php?p=about&lang=bg
并且p
参数是可选的,它可以在没有p
或lang
到目前为止,我能够将其中一个从(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
的{{1}}以及当您输入要重定向到seo的整个查询时强制重定向的那些重定向友好版。
此外,如果您没有/en/about
,则应该使用默认lang
我现在正在测试各种样本重定向,但到目前为止没有任何工作正常。
答案 0 :(得分:0)
您可以使用此规则以任何顺序支持查询参数:
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]