2011-04-12 204 views
0

我的網址是:的.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] 
+0

'$ s'究竟是什麼? – 2011-04-12 06:12:14

回答

0

這應做到:

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

允許多個城市的措辭和主題,並可選尾隨/路徑。

0

我輸入這個動態,但它應該工作。

重寫規則^([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

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將HTTPS狀態重定向301
L將最後一條規則
NE是無法迴避的查詢字符串
QSA將追加現有查詢參數

$1,$2$3是集團在您的REQUEST_URI

+0

一個小問題......一些城市和科目會有2或3個單詞。 http://www.domain.com/New_York_NY_algebra_1 – Jeffrey 2011-04-12 04:38:32

+0

@Jeffrey:我編輯了上面的答案,以處理城市名稱和主題字符串中的多個'_'。 – anubhava 2011-04-12 12:19:23