【发布时间】:2011-05-12 01:39:00
【问题描述】:
我正在使用 APACHE:mod_rewrite 来定义一组重写 URL 的规则
我希望此链接 显示为
/myDIR/walls.php?f=All&of=0&s=Newest -> All.html
所以我使用以下规则
来自 (.htaccess) 的文本
RewriteEngine on
RewriteBase /myDIR/
RewriteRule ^All\.html$ papers.php?f=All&of=0&s=Newest
现在这些变量被传递为
f=All of=0 s=Newest 这些被用于查询,显然,这些变量之一,即f 有时有带有空格和特殊字符的值,我无法避免这种情况,因为数据库已经在-place 以及我正在重写的所有 URL ......
现在当我尝试定义这样的规则时
我希望此链接 却显示为
/myDIR/walls.php?f=Characters & Supers&of=0&s=Newest -> Characters & Supers.html
我知道这是错误的,因为不应该有任何空格..所以为了使它正确,我定义了这样的规则
RewriteRule ^Characters%20%26%20Supers\.html$ papers.php?f=Characters%20%26%20Supers&of=0&s=Newest
它让我定义规则,但是当我点击我的链接时,我得到了这个 404 Not Found 错误“在此服务器上找不到请求的 URL /wallz/Characters & Supers.html。”
问题:怎么办?
我的猜测是我不应该在 .htaccess 中进行 HTML URL 编码
【问题讨论】:
-
来吧,伙计们,这对我来说是 911 .. 我需要在早上第一件事工作
标签: apache mod-rewrite special-characters urlencode