【发布时间】:2014-05-01 22:31:01
【问题描述】:
对于这个页面
www.industrialstores.com/search_results/Bell+%26+Gossett+101238+1.25"+Sweat+ChecktroLFlangeset/46
我在$_GET['s'] 中没有获得价值
$_GET['s'] 中的值应该是Bell Gossett 101238 1.25" Sweat ChecktroLFlangeset,但只有Bell 被传递到$_GET['s']
我已经尝试过urldecode()、htmlentities,但没用。
我的 .httaccess 文件是这样的
RewriteRule ^([a-zA-Z0-9_-]{3,100})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3 [L]
RewriteRule ^([a-zA-Z0-9_-]{3,100})/([^/]+)/([a-zA-Z0-9_]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4 [L]
RewriteRule ^([a-zA-Z0-9_-]{3,100})/([^/]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [L]
RewriteRule ^([a-zA-Z0-9_-]{3,100})/([^/]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5&r=$6 [L]
【问题讨论】:
-
你不应该在
$_GET中得到任何东西,你没有?来开始查询字符串 -
损坏的 mod_rewrite?您的重写似乎不喜欢
%:尝试将[a-zA-Z0-9_-]块更改为[a-zA-Z0-9%_-] -
这些是 mod_rewrite RewriteRule ^([a-zA-Z0-9_-]{3,100})/([^/]+)/([^/]+)?$ index\.php ?page=$1&s=$2&o=$3 [L] RewriteRule ^([a-zA-Z0-9_-]{3,100})/([^/]+)/([a-zA-Z0-9_]+ )/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4 [L] RewriteRule ^([a-zA-Z0-9_-]{3,100})/( [^/]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([^/]+)?$ index\.php?page=$1 &s=$2&o=$3&p=$4&q=$5 [L] 重写规则 ^([a-zA-Z0-9_-]{3,100})/([^/]+)/([a-zA-Z0-9_ ]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9]+)/([^/]+)?$ index\.php?page=$1&s=$2 &o=$3&p=$4&q=$5&r=$6 [L]
-
你可以改变你的正则表达式来搜索直到它找到一个斜线,就像你对第一行所做的那样。这样,它就不会破坏您的支票。像...
RewriteRule ^([a-zA-Z0-9_-]{3,100})/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5&r=$6 [L]
标签: php query-string