需要的mod_rewrite的.htaccess的解决方案,以取代20米%的空间与-'s在成

2019-10-16 16:22发布

我需要一个.htaccess mod_rewrite的解决方案,将采取这样的cgi的搜索查询:

www.mydomain.com/cgi-bin/finda/therapist.cgi?Therapy_Type=Pilates培训与市=洛杉矶&状态= CA

并返回匹配在浏览器的地址栏的结果看起来是这样的:

  • www.mydomain.com/therapists/Pilates-Training-Los-Angeles-CA.html

或者更好的是:

  • www.mydomain.com/therapists/pilates-training-los-angeles-ca.html

请注意该数据库包括一个,两个或三个词+空格值...

例如:

Therapy_Type=Pilates Training <- includes a space

City=Los Angeles <- includes a space

State=CA <- no space

我用工具在: http://www.generateit.net/mod-rewrite/生成以下重写规则:

RewriteEngine On
RewriteRule ^([^-]*)-([^-]*)-([^-]*)\.html$ /cgi-bin/finda/therapist.cgi?Therapy_Types=$1&City=$2&State=$3 [L]

这并不工作(查找搜索匹配),并产生结果页面,但由于参数值在他们的空间,我们结束了,看起来像这样的网址:

www.mydomain.com/therapists/Pilates%20Training-Los%20Angeles-CA.html

我花了好几天在这个论坛和其他人试图找到一个解决办法来摆脱这些20%(编码空间),因此最终返回的URL看起来像1)或2)。

我知道有人在这里必须知道如何做到这一点...帮助;-)

Answer 1:

如果换成%20 - ,那么你将如何知道哪里有治疗类型结束,城市开始?

pilates-training-los-angeles-ca

将会

type=pilates
city=training
state=los

所以,我不认为你想通过更换%20 - 。 但是,您可以用另一个字符替换它,就像_:

pilates_training-los_angeles-ca

然后,你将不得不每_翻译成你的PHP脚本(或任何语言你正在使用服务器端)内的空间。



文章来源: Need a mod_rewrite .htaccess solution to replace %20 spaces with -'s in the finished URL