URL中的分号通过.htaccess更改为%3b

时间:2013-08-19 21:55:58

标签: .htaccess url

这是我的.htaccess文件 -

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 

<IfModule mod_rewrite.c>
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^template\.php$ - [L]
#RewriteRule ^index\.php$ - [L]
RewriteRule . /template.php [L]
</IfModule>

它旨在通过/template.php汇集所有内容,以便处理其余的URL&amp;域。

无论出于何种原因,当URL中提供分号(这是构建我的房地产网站上的列表查询的URL的重要部分)时,分号将变为%3b,这不是我想要的。

奇怪的是,这只发生在一个网站上...我的所有网站都在同一台服务器上。

http://dev.brixwork.com/listings/city-Vancouver+West/area-Arbutus;Cambie;Coal+Harbour/order_by-create_date/order_direction-DESC/page-1

以上测试网址没问题。

但是在这里采取相同的文件..

http://suzannec.brixwork.com/listings/city-Vancouver+West/area-Arbutus;Cambie;Coal+Harbour/order_by-create_date/order_direction-DESC/page-1

你会注意到;分区名称(Arbutus,Cambie&amp; Coal Harbour)之间神秘地改变为%3b,并且生成的页面标题也是错误的,因为它没有获得正确的数组传递进行处理。

我完全清楚这可能不是一个.htaccess问题...但这是我能想到的最好的。

1 个答案:

答案 0 :(得分:1)

你的第一条规则就是这样做。当我点击你的第二个链接,因为它没有以斜杠或句点结束时,它会将我重定向到相同的URI,除了斜杠。尝试使用NE标志,以便分号不会被编码:

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L,NE] 

不确定为什么dev网站没有做同样的事情,除非它缺少重定向规则。