用htaccess替换seo-url中的参数



我的网址:

x.com/ara?il=伊斯坦布尔&ilce=avcilar&marka=opel&型号=corsa

x.com/rent/istanbul-avcilar-opel-corsa

在htaccess中:

RewriteRule ^rent/([0-9a-zA-Z-_]+)-([0-9a-zA-Z-_]+)-([0-9a-zA-Z-_]+)-([0-9a-zA-Z-_]+)$ ara.php?il=$1&ilce=$2&marka=$3&model=$4 [L,QSA]

如果所有参数都存在,它就会工作。但如果url中没有ilce模型参数,则不起作用。

所以我希望它也能在这些情况下工作

x.com/ara?il=istanbul&marka=opel&model=corsa 
x.com/rent/istanbul-opel-corsa
x.com/ara?il=istanbul&marka=opel 
x.com/rent/istanbul-opel
x.com/ara?il=istanbul&ilce=avcilar&marka=opel 
x.com/rent/istanbul-avcilar-opel

htaccess应该如何实现?

对于您显示的示例,您可以尝试以下操作吗。请确保在测试URL之前清除浏览器缓存。

RewriteEngine ON
##Rule for rewrite of (x.com/rent/istanbul-opel-corsa) TO (x.com/ara?il=istanbul&marka=opel&model=corsa) url.
RewriteRule ^rent/(istanbul)-(opel)-(corsa)/?$ ara?il=$1&marka=$2&model=$3 [NC,L]
##Rule for rewrite of (x.com/rent/istanbul-opel) TO (x.com/ara?il=istanbul&marka=opel) url.
RewriteRule ^rent/(istanbul)-(opel)/?$ ara?il=$1&marka=$2 [NC,L]
##Rule for rewrite of (x.com/rent/istanbul-avcilar-opel) TO (x.com/ara?il=istanbul&ilce=avcilar&marka=opel) url.
RewriteRule ^rent/(istanbul)-(avcilar)-(opel)/?$ ara?il=$1&marka=$2&model=$3 [NC,L]


对于通用规则集,请尝试以下操作:

RewriteEngine ON
##Rule for rewrite of (x.com/rent/istanbul-opel-corsa) TO (x.com/ara?il=istanbul&marka=opel&model=corsa) url.
RewriteRule ^rent/([^-]*)-([^-]*)-(.*)/?$ ara?il=$1&marka=$2&model=$3 [NC,L]
##Rule for rewrite of (x.com/rent/istanbul-opel) TO (x.com/ara?il=istanbul&marka=opel) url.
RewriteRule ^rent/([^-]*)-([^-]*)/?$ ara?il=$1&marka=$2 [NC,L]

最新更新