只用 .htaccess 重写网址中的一个单词



我有这个网址:

www.mysite.it/index.php?page=search&sOrder=dt_pub_date&iOrderType=desc&sPattern=MOTO&sCity=Pisa&sPriceMin=&sPriceMax=

这是一个由搜索按钮(比萨市的MOTO)生成的URL。

是否可以重写?page=searchsOrderdt_pub_dateiOrderTypesPattern等词。 sCitysPriceMin sPriceMax,以便 url 变为:

www.mysite.it/toscana/pisa/cerca=MOTO

还是只是更用户友好?

通过httpd.conf启用mod_rewrite.htaccess,然后将以下代码放入DOCUMENT_ROOT/.htaccess文件中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^page=search&sOrder=dt_pub_date&iOrderType=[^&]*&sPattern=([^&]*)&sCity=([^&]*)&sPriceMin=[^&]*&sPriceMax
RewriteRule ^index.php$ /toscana/%2/cerca=%1? [R=301,L,NE,NC]

我会提出以下建议。首先将您想要的部分捕获到环境中:

# find sCity component, write it to environment variable
RewriteRule ([?&]sCity=([^&?]+)) $1 [E=sCity:$2]
# find sPattern component, write it to environment variable
RewriteRule ([?&]sPattern=([^&?]+)) $1 [E=sPattern:$2]

然后使用从捕获创建的那些环境变量进行重写。

# do substitution from environment variables
RewriteRule ^(.*?)/.*$ $1/%{ENV:sCity}/cerca=%{ENV:sPattern}

注意:未经测试 - 您可以尝试一下,看看它是否激励您或对您成功。否则,请执行我所做的操作并继续阅读mod_rewrite文档。

相关内容

  • 没有找到相关文章

最新更新