2012-02-22 4 views
0

내 정적 URL을 정적 인 URL로 만들기 위해 노력하고 있습니다..htaccess 동적 인 정적 URL

지금까지, 나는 다음과 같이 그것을 왔 http://www.somedomain.com/about : http://www.somedomain.com/design/about.html

이는이다 나는 그것이 싶습니다 http://www.somedomain.com/design/index.php?p=about

: 이것은 내가 지금 가지고있는 일반적인 URL입니다 Rewriterule 사용하고 있습니다 : RewriteRule ^([a-z]+).html$ index.php?p=$1 [L]

다음과 같이 어떻게 수정합니까? http://www.somedomain.com/about?

모든/모든 도움에 감사드립니다. 대단히 감사합니다!

답변

0

'정적'URI를 제공하는 다시 쓰기 규칙을 사용하면 NEVER이 좋습니다. 당신이 사용할 수있는

몇 가지 다른 아이디어 :

  • 이 확인 페이지 '에 대해'파일이있는 디렉토리 (폴더) index.php 또는에서 index.html했다. 그러면 URL에 http://example.com/about/이 표시되고 필요에 따라 원하는 정보를 계속 표시 할 수 있습니다.
  • GET 메서드 대신 POST 메서드를 사용하십시오. http://example.com/about.php으로 표시됩니다 (참고 :의 뒤에는 ? 또는 다른 매개 변수가 없습니다)
  • 페이지 전환시 '끊김없는'URI를 제공하기 위해 두 가지 방법을 모두 사용하십시오.
+0

현재 내 index.php는 다른 디렉토리와 데이터베이스에서 정보를 동적으로로드합니다. 따라서 각 페이지마다 다른 폴더를 사용하는 것이 내 상황에서는 효과가 없을 것입니다. – Rick

+0

PenguinCoder, 당신은 좋은 생각이라고 생각하지 않을 수도 있지만 매우 일반적인 관행이며 "SEO 최적화 된"URI의 추세에 따라 점점 더 많이 사용되고 있습니다. 이것은 주류 관점이 아니기 때문에, "내 의견으로는"다음과 같은 포괄적 인 진술을 인정하는 것이 더 나을지도 모른다 :-) – TerryE

0

릭, 옳은 길을 가고 있습니다. Apache 다시 쓰기 문서를 읽어야합니다. 규칙의

RewriteEngine On 
RewriteBase /

그런 일반화 된 버전 : 당신의 docroot/.htaccess로 시작을 위해

Rewrite Rule ^(\w+)$  index.php?p=$1 [L] 

index.php에 단어 문자열을위한 모든 요청을 다시 작성합니다. 일치하는 항목이있는 경우 재 작성 엔진이 .htaccess 파일을 다시 확인하므로 루프를 만들지 않아야합니다. 이 경우 교체 문자열에 "."이 포함되어 있으므로 패턴이 나타나지 않으므로 발생하지 않습니다. 그러나보다 복잡한 경우에는 하나 이상의 RewriteCond 문으로 '보호'해야 할 수도 있습니다. 다시 아파치 설명서를 읽으십시오.