배경:
URL 미화를 켰습니다. 현재 URL 규칙은 다음과 같습니다
URL:
example.com/site/view?id=06XBvOuYTbVE9pH8t%2FKJg%3D%3D
여기서 매개변수 ID의 값은 암호화됩니다
이 URL로 변경하고 싶습니다:
1. example.com/view/06XBvOuYTbVE9pH8t%2FKJg%3D%3D.html
어떻게 구성해도 작동하지 않습니다.
하지만 다음과 같이 작동합니다.
2. example.com/view/1199.html
2개의 라우팅 규칙은 매우 쉽게 일치합니다.
<code>rules => [ 'view/<id:\d+>' => 'site/view' // 好使 ]</code>
그러나 라우팅 규칙 1은 어떻게 구성해도 작동하지 않습니다.
<code>rules => [ 'view/<id:[\w|%|=]+>' => 'site/view' // 不行 'view/<id:.*+>' => 'site/view' // 不行 'view/<id:.*>' => 'site/view' // 不行 '/view/<id:[^.]*>.html'=>'site/view?id=<id>' // 不行 ]</code>
규칙은 일반 규칙 d만 지원하나요?
이 효과를 갖도록 구성하는 방법은 무엇입니까?
온라인 대기
배경:
URL 미화를 켰습니다. 현재 URL 규칙은 다음과 같습니다
URL:
example.com/site/view?id=06XBvOuYTbVE9pH8t%2FKJg%3D%3D
여기서 매개변수 ID의 값은 암호화됩니다.
이 URL로 변경하고 싶습니다:
1. example.com/view/06XBvOuYTbVE9pH8t%2FKJg%3D%3D.html
어떻게 구성해도 작동하지 않습니다.
하지만 다음과 같이 작동합니다.
2. example.com/view/1199.html
2개의 라우팅 규칙은 매우 쉽게 일치합니다.
<code>rules => [ 'view/<id:\d+>' => 'site/view' // 好使 ]</code>
그러나 라우팅 규칙 1은 어떻게 구성해도 작동하지 않습니다.
<code>rules => [ 'view/<id:[\w|%|=]+>' => 'site/view' // 不行 'view/<id:.*+>' => 'site/view' // 不行 'view/<id:.*>' => 'site/view' // 不行 '/view/<id:[^.]*>.html'=>'site/view?id=<id>' // 不行 ]</code>
규칙은 일반 규칙 d만 지원하나요?
이 효과를 갖도록 구성하는 방법은 무엇입니까?
온라인 대기
위의 답변은 의미가 있습니다. %2F 표시는 URL이 /view/06XBvOuYTbVE9pH8t/FKJg%3D%3D.html이 되므로 /view/
게다가 이 계획은 직설적으로 말하면 바보일 뿐입니다. 친숙한 URL의 목적은 무엇입니까? 가독성을 높이고 SEO에 도움이 됩니다. 소위 암호화된 문자열이 이러한 효과를 줍니까? 이전에 최적화하지 않은 직접 ?id= 와 차이점이 있나요? 그냥 형식적인 얘기인데 재미있나요?
올바른 해결책은 /view/iphone-6s-gold와 같은 슬러그 필드를 사용하는 것입니다. 이것이 실제 최적화입니다.
다른 사람이 임의로 ID를 입력하는 것을 방지하기 위한 것이라고 말하지 마세요. 이는 말도 안 되는 일이며 더 이상 이유를 쓰고 싶지 않습니다. 그리고 슬러그 솔루션은 이 문제도 해결합니다.
%2F는 /로 처리될 것 같습니다. ID의 암호화 및 복호화 기능을 아웃소싱하고 %2F를 특별하게 처리할 수 있습니다(예: 대신 자리 표시자 설정).
1, 2를 묻는 건가요?
제목은 2, 내용은 1
<code>example.com/view/06XBvOuYTbVE9pH8t%2FKJg%3D%3D.html array( '/view/<id:[^.]*>.html'=>'site/view?id=<id>' )</code>