【问题标题】:Semi-colons in URL changes to %3b via .htaccessURL 中的分号通过 .htaccess 更改为 %3b
【发布时间】:2013-08-19 21:55:58
【问题描述】:

这是我的 .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 问题...但这是我能想到的最好的。

【问题讨论】:

  • 我删除了前两行.. 坦率地说,我什至不明白这是做什么的。但它似乎已经修复了它?

标签: .htaccess url


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢!正是我想要的!
猜你喜欢
  • 2012-12-10
  • 1970-01-01
  • 2018-06-28
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多