2012-05-18 37 views
1

嗨我試圖轉換的URL看起來像這樣URL重寫htaccess的不太清楚如何做到這一點

example.com/sometype/author-name/sort-date 或 example.com/sometype/author-name/sort-date/something-value/

只需要一個通用的解決方案。

我對此很新,在正則表達式方面有點弱。 所以我可以寫是這樣的識別

sometype。這時候/作者名/排序日期/

sometype。這時候/作者名/排序日期/東西價值/

([a-zA-Z0-9] +) - ([a-zA-Z0-9] +)

我想把它改寫成這種格式

example.come?data = {「par 1 「:」 sometype。這時候」, 「作家」: 「名字」, 「排序」: 「日期」, 「東西」: 「淡水河谷」}

example.come數據= {? 「PAR1」 :「sometype」,「author」:「name」,「sort」:「date」}

回答

0

首先明白你對mod_rewrite非常不尋常和非常棘手。不僅它需要基於遞歸的代碼,而且這個代碼也不會很可讀。

隨着該警示注啓用了mod_rewrite並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄下:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## If the request is for a valid directory 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
## If the request is for a valid file 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
## If the request is for a valid link 
RewriteCond %{REQUEST_FILENAME} -l 
## don't do anything 
RewriteRule^- [L] 

RewriteRule ^([^/]+)/([^/]+)(.*?)/?$ $1\",\"$2$3 [L] 

RewriteRule ^([^-]+)-([^,]+)(.*)$ $1\":\"$2$3 [L] 

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^(.*)$ /?data={\"part1\":\"$1\"} [L] 
+0

好吧,我想生病度假轉換www.example.com/something/data1/ data2/data3到www.example.com/anything.php?main=something&&data=data1/data2/data3 對此,這是我寫的,但它似乎並沒有工作。 RewriteEngine On#打開重寫引擎 RewriteRule /([^/]*)/?(.*)$ /anything.php?api=$1&&data=$2 [NC,L] – Prateek

+0

Wow after花一個小時想出上面的答案,你決定完全改變原來的問題。請先測試我在這裏提供的答案。如果您想完成更改問題,請發佈單獨的問題,我也會盡力回答。 – anubhava

+0

對不起,Anubhava,肯定會嘗試測試它。感謝你的幫助! – Prateek