在我的asp.net核心應用(角4前端)我接受這樣的URL:重寫正斜槓中的查詢參數
example.com/report;url=http%3A%2F%2Fexample2.com
我想創建一個允許人們進入一個重寫規則以下網址:
example.com/report;url=http://example2.com
我找不出如何做到這一點。
我想:
var options = new RewriteOptions()
.AddRewrite(@"(.*);url=http:\/\/([^;]*)(.*)", "$1;url=http%3A%2F%2F$2$3", skipRemainingRules: false)
.AddRewrite(@"^report.*", "index.html", skipRemainingRules: true)
app.UseRewriter(options);
這沒有工作,但即使它不會考慮該域名,有斜線的網址,即子目錄。使用組匹配模式我認爲這是不可能的。它需要在匹配組上找到&替換類型的操作。
其他網絡服務器將此作爲可配置選項來解碼斜槓。我無法在asp.net核心文檔中找到任何對它的引用。這可能嗎?
的價值。網絡核心應用程序和互聯網。我爲此使用了Nginx。你有沒有試圖在那裏重寫?我認爲它應該工作。順便說一下,使用目錄作爲別的東西不是一個好主意,除非它們與你的MVC結構相關,但是你不會使用重寫,你可以將模式匹配到控制器(或者對於簡單的CMS,使用1個控制器來匹配所有東西然後處理控制器中的URL-s)。如果使用MVC,您可以在需要時返回「重定向」響應。 – Harry
你在哪裏舉辦你的應用程序? IIS,nginx,自託管? – Evk
爲什麼不能使用查詢字符串來實際保存參數,即使用'?'並將您的URL更改爲'example.com/report?url = http:// example2.com'?然後你可能根本不需要重寫任何URL。 – SergGr