2015-11-02 102 views
0

您好我想創建一個規則,以消除該URL的第一個目錄動態目標,看到的例子:htaccess的使用正則表達式

請求URL:http://www.example.com/San-Salvador/help

我想重定向到

目標URL:http://www.example.com/help

模式爲[基本URL] [城市名稱] [目錄],我想重新創建它,因爲這是[base URL] [目錄名]

+0

你能告訴我們一些示例代碼,你期望的正則表達式運行? –

+0

以及正則表達式不是主要問題,主要問題是使用htaccess編寫規則 –

+0

當您在瀏覽器中輸入「http:// www.example.com/help」時會發生什麼? – anubhava

回答

0

這裏是一個應該工作的一般的正則表達式:

^(http:\/\/www\.example\.com\/)(.*\/)(.*) 

每個術語在括號中是一組這將可能匹配的輸入串。對於輸入字符串:

http://www.example.com/San-Salvador/help 

這裏的匹配組:

http://www.example.com/ 
San-Salvador/ 
help 

保留是第一個和第三個,即團體http://www.example.com/help給你http://www.example.com/help

你可以探索這個正則表達式here at Regex 101

+0

謝謝,現在我只需要弄清楚如何將變量放在htaccess上使用 –

+0

@Jose如果你可以給我一些上下文,我會嘗試給你你可以在WordPress中使用的代碼。 –

+0

以及我從一個自定義cms移動到wordpress,我不想鬆散所有的搜索引擎優化,因爲我改變了網站的結構,舊的網站寫在asp.net mvc上,他們做了代碼中的網址處理。我試圖在wordpress上覆制它。在asp.net項目中,他們解析url並將其重定向到一個新的url,而不改變瀏覽器中的url顯示。我希望這是有道理的 –

0

大多數情況下,您可以使用這條規則來移除城市。但是,您的代碼需要處理重定向的URL請求後發生的情況。意思是什麼時這個被稱爲http://www.example.com/help

RewriteEngine on 
RewriteRule ^(?:[^/]+)/([^/]+)/?$ /$1 [L] 
+0

感謝這個解決方案的確能工作,但它改變了瀏覽器中的網址,有沒有辦法在地址欄上寫這個http://www.example.com/San-Salvador/help,重定向在這裏http://www.example.com/help,但不要更改地址欄上的地址 –

+0

@JoseManuelOjeda你應該能夠刪除301重定向和完整的URL。查看我的更新。 –

+0

這是如何解決你的? –