2009-06-10 3 views
2

는 내가 PHP 웹 사이트를 개발하고있어, 현재 내 링크는 페이스 북 틱 스타일에 (여기에 유래에서와 같은) 엔진 , 같은 :사용 SEO 친화적 인 링크

me.com/john-adams

하지만 어떻게 같은 이름을 가진 두 명의 사용자와 차별화 할 수 있습니다 - 또는 더 정확하게는 두 질문의 차이를 말할 유래 않는 방법 같은 제목? 나는 같은 것을하려고 생각하고 있었다.

me.com/john-adams-123 

그리고 url을 분석했다.

기타 권장 사항은 무엇입니까? 스택 오버 플로우의 경우

+0

에 문자열을 처리 할 수 ​​있습니다 http://stackoverflow.com/questions/975240/I-love-badgers 또한이 질문에 간다 - 숫자는 테이블에있는 ID이며, 마지막 비트는 단지 SEO 용이며 꽤보기 쉽습니다. –

답변

7

Stackoverflow는 me.com/123/john-adams과 같은 점을 제외하고는 me.com/john-adams-123 옵션과 비슷한 기능을 수행합니다. 여기서 john-adams 부분에는 실제로 프로그래밍상의 의미가 없습니다. 시맨틱 콘텐츠가없는 숫자 ID가 URL의 오른쪽에서 더 멀리 있기 때문에 제안하는 방식이 약간 더 좋습니다.

사용자 테이블에 고유 한 슬러그 (이 SEO 친화적 인 URL 구성 요소는 일반적으로 슬러그라고 함)를 저장하고 필요한 경우 고유 번호를 얻기 위해 번호 추가 작업을 수행합니다.

+0

오히려 긴 문자열 (varchar) 값에 비해 다소 짧은 정수 값의 인덱스 된 열을 사용하면 데이터베이스 성능이 향상되므로 숫자 ID를 사용하는 것이 좋습니다. – zappan

5

, 그것은 다른 한편으로는, 단지 모든 사람들이 고유 한 ID를 선택하기로 결정했다

http://stackoverflow.com/questions/975240/using-seo-friendly-links 

http://stackoverflow.com/questions <- Constant prefix 
/975240       <- Unique question id 
using-seo-friendly-links   <- Any text at all, defaults to title of question. 

페이스 북입니다. 그런 다음 프로필 페이지로 사용하게됩니다. http://facebook.com/p/username/과 같은 것입니다. 그들은 사용자가 선택한 모든 문자열을 기존의 모든 사용자 중에서 고유 한 것으로 요구함으로써 사용자 간의 고유성 문제를 해결하고 있습니다.

3

그래서 '치트':-).

질문에 대한 링크는 "Using SEO-friendly links"이지만 "Using SEO-friendly links"도 작동합니다.

숫자 뒤에 오는 부분은 SEO 친숙한 비트이지만 SO는 실제로 거기에 신경 쓰지 않습니다. 질문 제목이 기본값이라고 생각합니다. 두 번째 존 애덤스가 다른 ID와 같은 고유 한 URL 것

me.com/123/john-adams 

:

그래서 경우에 당신과 같은 링크를 만들 수있는 내가 함께 갈 것

me.com/111/john-adams 
0

당신의 스타일은 me.com/john-adams-123입니다. 왜냐하면 URI의 가장 왼쪽 부분이 SEO 순위에서 더 중요하다고 생각하기 때문입니다. 사실

, 당신은 (단지 사용자 프로필), 당신은 me.com/john-adams-articles-123 여전히 profile.php?uid=$1-/.+-profile-(\d+) 및 말하자면, 사용할 수를 리디렉트 재 작성 규칙을 더 me.com/john-adams-profile-123처럼 수행 할 수 있습니다 여러 컨트롤러에이를 사용하고자하는 경우 이 사용자의 기사 ...사용자 이름은 단순히 무의미한 전에 고유 ID의

me.com/john-adams-123 

사용법 :

2

나는 그것을 콘텐츠 계층 구조를 보존로 제안 된 솔루션이 stackoverflows의 그것과 더 나은 해결책이 말할 것입니다.

나는, 그러나, 콘텐츠 형식의 집행을 추천 할 것 : 콘텐츠 형식의 다양한 서비스를 제공하면서

me.com/john-adams-123.html 

이 일치하는 URL에 대한 수 있습니다.

또한 더 특히 하이 엔드 번호를 들어, URL에 불필요한 cruft에의 양을 줄이기 위해, 고유 ID에 대한 sexatrigesimal의 사용을 만들 수 있지만, 이것은 종종 과잉이다 : D

me.com/john-adams-123.html -> me.com/john-adams-3F.html 
me.com/john-adams-1234567890.html -> me.com/john-adams-KF12OI.html 

마지막으로, 부적합한 액세스 가능한 URI에 대해 301 리디렉션을 활용하여 "정확한"친숙한 스키마로 리디렉션하여 중복 된 콘텐츠 벌칙을 방지하십시오.

+1

나는 오늘 뭔가를 배웠다 - sexatrigesimal. 감사 :) –

0

특수 문자가 포함 된 링크를 다루지 않으려면이 플러그인을 Zend Framework 용으로 사용할 수 있습니다.

https://github.com/btlagutoli/CharConvert

$filter2 = new Zag_Filter_CharConvert(array(
       'onlyAlnum' => true, 
       'replaceWhiteSpace' => '-' 
      )); 
echo $filter2->filter('éééé ááááá ? 90 :');//eeee-aaaaa-90 

이 다른 언어

관련 문제