2013-02-12 121 views
1
可變

我有網址,像這樣的:重寫規則:正則表達式來從鏈接中刪除

我黨/ viewparty/243-黨在柏林-2013.html

哪裏URL的可變部分是:

243-黨在柏林-2013.html

我NEET得到像網址:

事件/黨在柏林-2013.html

我怎麼能與Apache重寫規則做呢?我設法刪除了「my-party/viewparty」,但我無法刪除部分變量鏈接。 非常感謝您

亞歷山德羅

+0

這個問題不是很清楚。你想只刪除243-前綴或完全替換URL中的最後一個路徑元素(what-ever-party.html)與派對-in-berlin-2013.html? – heximal 2013-02-12 10:24:16

+0

您好,我需要用events/party-in-berlin-2013.html替換我的party/viewparty/243-party-in-berlin-2013.html網址,其中url的243部分是可變的 – AleCat83 2013-02-12 10:27:38

回答

1

下面將格式映射任何URI:

my-party/viewparty/<digits>-<rest-of-file-name>.html

/events/<rest-of-file-name>.html

RewriteEngine On 
RewriteCond %{REQUEST_URI} my-party/viewparty/\d+-([^\.]*\.html)$ 
RewriteRule .* /events/%1 [L] 

的它的工作方式是捕捉請求URI的最後一部分(用美元符號表示),以.html結尾,並在my-party/viewparty/\d+-之前,其中\d+表示一串數字,其中有一個數字最小長度爲一位數字。然後在RewriteRule中將此捕獲的模式(由%1表示)附加到/events/

如果你想重定向(301 Moved Permanently),以新的URI,使用方法:

RewriteEngine On 
RewriteCond %{REQUEST_URI} my-party/viewparty/\d+-([^\.]*\.html)$ 
RewriteRule .* /events/%1 [R=301,L] 

而且,如果party-in-berlin-2013部分沒有變化,那麼你可以只需更換RewriteCond本:

RewriteCond %{REQUEST_URI} my-party/viewparty/\d+-(party-in-berlin-2013\.html)$