我有这个网址:
www.mysite.it/index.php?page=search&sOrder=dt_pub_date&iOrderType=desc&sPattern=MOTO&sCity=Pisa&sPriceMin=&sPriceMax=
这是一个由搜索按钮(比萨市的MOTO)生成的URL。
是否可以重写?page=search
、sOrder
、dt_pub_date
、iOrderType
、sPattern
等词。 sCity
、 sPriceMin
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文档。