url编码和mod重写无法加载页面

时间:2016-01-20 16:39:49

标签: .htaccess mod-rewrite

我有一个htaccess文件,将我的网址重写为更友好的网址

 #   '/'.$i.'/'.$company;
RewriteRule ^([0-9]+)/([a-zA-Z0-9\_\-]+)(/?)$ /offer.php?i=$1&company=$2 [NC,L]

这个工作正常,除非在下面的情况下页面呈现完美......

/ 14 / barringtons的婚礼汽车

/ 13 /牛肉和 - 布丁

/ 12 /银行的打印机

然而,当客户的名称包含say&这个网址的符号或任何其他符号都是这样写的......

/ 15 / bella-%26-MR-TOM

/ 17 / bonton-毛发%26-美容沙龙

/ 37 /地岛%27S-墨西哥餐馆

突然间页面出现,因为找不到404。不管怎么说,我似乎无法解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您无需更改.htaccess文件,但在撰写网址时需要根据slugs变量使用$company

而不是这种网址:

http://www.example.com/15/Fathers&Sons

你应该写:

http://www.example.com/15/Fathers-Sons

这就是stackoverflow和大多数网站的工作方式。

Have a look at the answer on this question,使用此代码,您可以在代码中编写网址时编写'/'.$i.'/'.slugify($company);

答案 1 :(得分:0)

尝试将规则更改为以下内容,这应该可以解决您的问题。

RewriteRule ^([0-9] +)/([^ /] *)?$ /offer.php?i=$1&company=$2 [L]