다시 쓴 후 슬래시가 누락되는 이유를 모르겠습니다
다음은 go.php 코드입니다
으아악다시 쓰기 규칙은 다음과 같습니다
으아악巴扎黑2017-05-16 17:06:19
참조 Apache가 여러 개의 슬래시를 제거하는 이유는 무엇입니까?
@Pekka 웃은 URI에서 인접한 여러 /
가 RFC 표준을 준수하지 않는다는 점을 지적했고, @Pekka 웃은 Apache가 인접한 여러 /
를 하나로 병합하도록 설계되었다고 추측했습니다. /
不符合RFC标准,@Pekka 웃 猜测Apache被设计为将多个相邻的/
合并成一个。
同样,我搜索后了解到在nginx中有merge_slashes这样一项配置,用于开启或者关闭将请求URI中相邻两个或更多斜线合并成一个的功能,默认这项配置是开启的。由此可见,apache和nginx默认在处理URI中多个相邻/
时行为时一致的,都遵循了RFC标准。
至于http://localhost/go.php?url=http://www.163.com/中的//
没有合并成一个,而
http://localhost/go/http://www.163.com/中的//
<시간>
/
를 처리할 때 일관된 동작을 가지며 둘 다 RFC 표준을 따른다는 것을 알 수 있습니다. <시간>
http://localhost/go.php?url=http://www.163.com/의//
는 하나로 병합되지는 않지만,
http://localhost/go/http://www.163.com/의 //
는 하나로 병합됩니다. 전자는 RFC 표준을 준수하고 후자는 준수해야 합니다. 아니다. 🎜
🎜RFC 표준에 대한 깊은 이해가 없기 때문에 위의 설명이 충분히 엄격하지 않을 수 있습니다. 실수가 있으면 지적해 주세요. 하지만 이 수준을 이해한 후에는 이제 거의 충분하다고 생각합니다. 다시 작성 규칙이나 코드를 변경하는 방법은 Google에서 직접 찾아보세요. 🎜