일부 워드 프레스 설치 에서처럼 ID가없는 URL을 자주 (재기록하여) 볼 수 있습니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까? 예 : site.com/product/some-product-name/ 모든 페이지 요청에서 DB 쿼리를 피하기 위해 캐쉬에 페이지 이름과 ID의 배열을 유지 하시겠습니까? 충돌을 피하는 방법과 ID가없는 URL을 사용하는 데있어 다른 문제는 무엇입니까?ID가없는 URL
답변
ID를 사용하면 동일한 수수께끼를 나타냅니다. 실제로는 데이터베이스에서 다른 값을 확인하는 것입니다. 위 URL의 '일부 제품 이름'부분도 고유 한 항목입니다. 어떤 사람들은 그들을 슬러그 (wordpress, 또한 permalinks)라고 부릅니다. 따라서 데이터베이스에 특정 ID가있는 행을 쿼리하는 대신 데이터베이스에 특정 슬러그가있는 행을 쿼리합니다. 레코드를 검색하기 위해 ID를 알 필요가 없습니다.
제품 이름이 고유 한 경우 문제가되어서는 안됩니다. 열이 색인되는 한 숫자 ID보다 고유 한 이름으로 제품을 검색하는 데 더 이상 (중요한 것은 아님) 더 이상 소요되지 않습니다.
Wordpress에는 슬러그 용 wp_posts 테이블의 필드가 있습니다. 게시물을 만들면 게시물 제목에서 슬러그가 생성되고 (예 : 설정 한 경우) 공백을 대시로 바꿉니다 (또는 밑줄로 설정할 수 있다고 생각합니다). 또한 아포스트로피, 쉼표 또는 기타 등을 사용합니다. 나는 또한 슬러그의 전체 길이를 제한한다고 믿는다.
간단히 말해 URL을 동적으로 게시물의 제목으로 디코딩하지 않습니다. 테이블에 직접 게시물 이름의 URL 버전과 일치하는 입력란이 있습니다.
URL은 Apache의 mod_rewrite 모듈로 다시 쓰여지고 있습니다. 여기서 언급했듯이, Wordpress는 백그라운드에서 제목이나 게시물 이름을 살균 한 후 슬러그를 할당합니다.
질문에 대답하기 위해 Wordpress의 "Pretty Permalinks"기능에 대해 설명하고 Wordpress codex에 대해 자세히 알아볼 수 있습니다. 새 버전의 Wordpress는 내부적으로 다시 쓰기 작업을 수행합니다 (no .htaccess editin, 대신 wp_rewrite). 그래서 어떤 퍼머 링크 구조에 대해서도 동일한 규칙 집합을 볼 수 있습니다.
일부 파기를 수행하면 이전 다시 쓰기 규칙을 찾을 수 있습니다. 예를 들어 :
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /index.php?year=$1&monthnum=$2&day=$3 [QSA,L]
는 /2008/01/01/
같은 URL을하고 /index.php?year=2008&monthnum=01&day=01
에 직접 (그리고 날짜 범주를로드).
그러나 언급 한 바와 같이 product-name
페이지는 에만입니다. Wordpress에서 이미 게시물 제목을 삭제하고 데이터베이스의 필드로 저장했기 때문입니다.
- 1. ID가없는 clearTimeout
- 2. ID가없는 중첩 컬렉션에 존재합니까?
- 3. id가없는 모델에서 오류가 발생했습니다.
- 4. jQuery : ID가없는 div 숨기기
- 5. id가없는 cakephp 라우팅?
- 6. ID가없는 IEnumerable의 항목 참조
- 7. webBrower Button 요소 ID가없는 클릭?
- 8. ID가없는 조인 테이블에 액세스하려고 시도했습니다.
- 9. jquery를 사용하여 id가없는 테이블 제거
- 10. Entity Framework - Id가없는 엔티티 업데이트
- 11. id가없는 경우에만 jQuery 언로드 알림
- 12. id가없는 하위 쿼리에서 얻는 방법
- 13. 구조체에 ID가없는 것은 무엇을 의미합니까?
- 14. ASP.NET ID가없는 MVC의 라이브 ID
- 15. jquery에서 id가없는 대화 상자를 작성하십시오.
- 16. ID가없는 JQuery UI 대화 상자
- 17. 요소 ID가없는 HTML 문자열 구문 분석
- 18. 고유 id가없는 데이터에 대한 카산드라 "스키마"개발
- 19. MySQL : 다른 테이블에 ID가없는 경우 행을 삭제하십시오.
- 20. 레일스에서 id가없는 테이블을 관리하는 방법은 무엇입니까?
- 21. jQuery/JS 오류 주어진 ID가없는 페이지에서
- 22. html의 응용 프로그램 ID가없는 페이스 북 공유 버튼
- 23. 이 LLVM 1.5 경고는 무엇을 의미합니까? "id가없는 프로토콜 한정자는 구식입니다"
- 24. 왜 오류 메시지가 "4, 실수로 호출 한 ID가없는 경우"
- 25. Rails ActiveRecord - ID가없는 테이블에서 작업을 수행 할 수있는 방법이 있습니까?
- 26. JQuery를 통해 이름과 ID가없는 iframe의 내용에 액세스하는 방법은 무엇입니까?
- 27. facebook-graph-api를 사용하여 앨범 ID가없는 사진 업로드
- 28. ID가없는 객체에 대해 NHibernate를 사용하는 가장 좋은 방법은 무엇입니까?
- 29. 사용자 ID가없는 JMS Q 연결 팩토리를 구성하는 WebSphere 7 : MQRC_NOT_AUTHORIZED
- 30. ident_current ("tbluser")를 표시했지만 현재 ID가없는 데이터를 볼 수 없습니다.
글쎄, 상당히 오래 걸리지 만 신경 쓰지 않을만큼 빠릅니다. –