2014-12-01 114 views
0

URL應該去爲什麼我的RewriteRule無法正常工作?正則表達式匹配

from: http://myurl.com/anything/?_escaped_fragment_=/article/1234 
    to: http://myurl.com/rubriken/detail/articleuid/1234/ 

我重寫規則是這樣的:

RewriteRule ^.*\?_escaped_fragment_=\/article/(.*)$ /rubriken/detail/articleuid/$1/ [R=301,L] 

我測試了http://regex101.com/正則表達式和它匹配。但它在我的.htaccess中不起作用,也不在http://htaccess.madewithlove.be/上。我的錯誤在哪裏?

回答

2

因爲?_escaped_fragment_=/article/1234沒有在重寫規則使用

用途:

RewriteCond %{QUERY_STRING} _escaped_fragment_=/article/(.*)$ 
RewriteRule^/rubriken/detail/articleuid/%1/? [R=302,L] 

變化[R=302,L][R=301,L]當測試順利進行。

+0

thx很多,'%{QUERY_STRING}'做到了。還需要編輯中的'?',否則我會得到一個ERR_TO_MANY_REDIRECTS。 – nbar 2014-12-01 15:57:25

+1

是的,也適用於'[R = 301,L,QSD]'而不是'?',但只有在Apache 2.4 – Croises 2014-12-01 15:59:59

相關問題