.htaccess重写正则表达式正则表达式

时间:2011-04-12 03:07:19

标签: regex apache .htaccess mod-rewrite rewrite

我的网址是:

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]

3 个答案:

答案 0 :(得分:0)

我正在即时输入,但它应该有效。

RewriteRule ^([a-zA-Z - ] +)([AZ] {2})([a-zA-Z0-9 _-] +)$ list.php?city = $ 1和;状态= $ 2及S = $ 3'/ p>

()在末尾部分指定$#变量,因此匹配的所有内容都应排成一行。

答案 1 :(得分:0)

在.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将重定向,状态为301 L将制定最后一条规则 NE表示没有转义查询字符串
QSA会附加您现有的查询参数

$1$2$3是REQUEST_URI中的群组

答案 2 :(得分:0)

这应该这样做:

RewriteRule ^([A-Za-z\-]+(?:_[A-Za-z\-]+)*)_([A-Z]{2})_([A-Za-z0-9_\-\(\)]+)\/?$ list.php?city=$1&state=$2&$s=$3 [L]

允许多个措辞的城市和主题以及可选的尾随/路径。