簡體   English   中英

在URL中使用雙斜線是否有任何缺點?

[英]Are there any downsides to using double-slashes in URLs?

我在PHP中編寫了自己的MVC框架,它使用的格式為:

/controller/method/param1/param2/param...

我已經這樣做了“默認”方法可以被忽略(默認情況下是index() ),所以這會產生像/controller//param1/param2/param...這樣的URL。 例如,URL: /view//panel-glide/3將在view控制器中調用index('panel-glide', 3)

這工作得很好,但是我擔心搜索引擎或者一些舊的瀏覽器在看到雙斜線時可能會發瘋,因為我認為我實際上看起來並沒有像以前那樣使用它們。

有人知道我可能遇到的任何問題嗎?

WebMaster上有一個現有的答案,討論了有兩個斜杠危險 它討論了很多Apache,但這些想法一般都適用。

從本質上講,我不認為這是推薦的。 /foo/bar/foo//bar應該是兩個完全不同的路徑 每個斜杠都很重要,試圖規避標准化的做法必然會讓你感到困惑。

正如答案中提到的,相對路徑失敗也存在非常現實的危險。 有些瀏覽器會正確地確定來自/foo/bar//baz的相對路徑../../fizz/foo/bar/fizz ,而其他瀏覽器會將雙斜杠視為單個斜杠,並選擇/foo/fizz

另外,我覺得它看起來很有趣。

Apache將多個斜杠視為單斜杠。 這會影響RewriteRules ,例如,如果你有這樣的規則:

RewriteRule ^user/(.*)/([0-9]+)$ /user.php?id=$2 [QSA,L]

這將捕獲諸如user/nomaD/500鏈接,但它不會捕獲user//500因為它將其視為user/500

換句話說,我不認為你的設置會起作用,因為它會將 param1視為 method並將所有參數移位,除非它們屬於特定類型。 我想這不會影響你的具體情況,但在很多情況下,這將是使用//的缺點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM