2

这是我的 .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 和域。

无论出于何种原因,当 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 和 Coal Harbour)之间神秘地更改为 %3b,并且生成的页面标题也是错误的,因为它没有得到正确的数组进行处理。

我完全意识到这可能不是 .htaccess 问题......但这是我能想到的最好的。

4

1 回答 1

1

您的第一条规则是这样做。当我单击您的第二个链接时,由于它不以斜杠或句点结尾,它会将我重定向到相同的 URI,但斜杠除外。尝试使用该NE标志,以便分号不会被编码:

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

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

于 2013-08-19T22:10:31.900 回答