的.htaccess重写正则表达式的正则表达式
问题描述:
我的网址是:的.htaccess重写正则表达式的正则表达式
http://www.domain.com/Seattle_WA_math
它需要指向:
http://www.domain.com/list.php?city=Seattle&state=WA&s=math
这里是我到目前为止,没有工作...
RewriteRule ^[A-Za-z_\-]+_[A-Z]{2}_[A-Za-z0-9_\-\(\)]+\/$ list.php?city=$1&state=$2&$s=$3 [L]
答
这应做到:
RewriteRule ^([A-Za-z\-]+(?:_[A-Za-z\-]+)*)_([A-Z]{2})_([A-Za-z0-9_\-\(\)]+)\/?$ list.php?city=$1&state=$2&$s=$3 [L]
允许多个城市的措辞和主题,并可选尾随/
路径。
答
我输入这个动态,但它应该工作。
重写规则^([A-ZA-Z - ] +)?([AZ] {2})([A-ZA-Z0-9 _-] +)$ list.php的城市= $ 1 &状态= $ 2 & s = $ 3
()指定在结束部分的$#变量,所以匹配的所有东西都应该排队。
+0
它没有工作...得到了404找不到错误。我将脚本改为RewriteRule ^([a-zA-Z - ] +)_([AZ] {2})_([a-zA-Z0-9 _-] +)\/$ list.php?city = $ 1&state = $ 2&s = $ 3 [L]并且它已经加载,但是没有一个变量被抓到了 – Jeffrey 2011-04-12 03:48:26
答
在.htaccess文件试试这个:
RewriteEngine on
Options +FollowSymlinks -MultiViews
RewriteRule ^([A-Za-z-]+(?:_[A-Za-z-]+)*)_([A-Z]{2})_([A-Za-z0-9_-]+)/?$ /list.php?city=$1&state=$2&s=$3 [R,L,QSA,NE]
R=301
将HTTPS状态重定向301 L
将最后一条规则NE
是无法回避的查询字符串QSA
将追加现有查询参数
$1
,$2
和$3
是集团在您的REQUEST_URI
'$ s'究竟是什么? – 2011-04-12 06:12:14