문제

비슷한 질문을 게시했습니다 여기. 그러나 이것은 무엇을 해야하는지에 대한 조언을 얻는 것입니다. 이제 무엇을 해야할지 알았으므로 어떻게 해야하는지에 대한 약간의 도움을 찾고 있습니다!

기본적으로 나는 거의 100% 동적 인 웹 사이트가 있습니다. 모든 웹 사이트 링크는 PHP를 사용하여 생성되며 모든 페이지는 PHP 포함/코드로 구성됩니다. URL을 개선하여 사이트의 SEO를 개선하려고 노력하고 있으며 (다른 질문에 언급 된대로) 조금 어려움을 겪고 있습니다.

서버의 Ugly URL에 멋진 URL을 다시 작성하는 Mod_rewrite를 사용하고 있습니다. 따라서 내가 필요한 것은 이제 추악한 URL (페이지의 PHP 코드에서 생성)을 더 좋은 URL로 변환하는 것입니다.

다음은 구문 분석 해야하는 URL입니다 (다른 질문은 다음과 같습니다).

/index.php?m=ModuleType
/index.php?m=ModuleType&categoryID=id
/index.php?m=ModuleType&categoryID=id&productID=id
/index.php?page=PageType
/index.php?page=PageType&detail=yes

다음은 위의 URL을 다음과 같이 구문 분석하기를 원하는 것입니다.

/ModuleType
/ModuleType/CategoryName
/ModuleType/CategoryName/ProductName
/PageType
/PageType/Detail

게시 된 다른 질문에 대한 예가 있습니다. 검보 그러나 나는 그것이 조금 지저분하고 정확히 무엇을하고 있는지 불분명하다고 느꼈습니다.

누군가 내가이 문제를 해결하도록 도울 수 있습니까?

미리 감사드립니다.

도움이 되었습니까?

해결책

나는 당신이 무엇을보고 있는지 생각합니다 ... 당신은 모든 URL 재 작성을 수행했지만 페이지 간의 모든 링크는 이전 URL 구문을 사용하고 있습니다.

내가 이것을 둘러 볼 수있는 유일한 방법은 새로운 구문을 사용하여 링크를 검색하고 링크를 교체하는 것입니다. 모든 링크가 동적으로 생성되면 이것은 조금 더 복잡 할 것이지만, 그렇게 할 일이 너무 많지 않기를 바랍니다.

현재 링크가 어떻게 생성되는지 보지 않으면 코드를 변경하는 방법을 말하기가 어렵습니다. 그래도 다음과 같이 작동한다고 생각합니다.

<?php echo "<a href='/index.php?m=$ModuleType&categoryID=$id'>"; ?>

그래서 당신은 이것을 다음으로 변경합니다.

<?php echo "<a href='$ModuleType/$id'>"; ?>

구문에서 오류가 발생하면 머리 꼭대기에서 오류가 발생했다면 죄송합니다 ...

다른 팁

내가 당신의 질문을 오해하지 않으면, 당신은 "Ugly"URL을 구문 분석하지 않으면 PHP 스크립트가 그들과 함께 호출됩니다. $_GET[] 당신의 매개 변수 (m, categoryId, productID)와 당신은 그것들을 결합하여 멋진 URL을 만들기 위해 너무 어렵지 않아야합니다 (하나의 매개 변수가 있는지 확인하고 문자열을 연결하기 위해 약간의 논리 만 있습니다).

전면 컨트롤러가 필요하므로 URL을 올바른 페이지로 발송합니다.

  1. Apache는 .htaccess의 규칙을 사용하여 URL을 다시 작성하여 작성된 모든 것이 index.php? q =로 리디렉션됩니다. 예를 들어, 입력 http://example.com/i/am/here index.php? q =/i/am/here로 호출됩니다.
  2. index.php는 $ _get [ "Q"]에서 경로를 구문 분석하고해야 할 일을 결정합니다. 예를 들어, 페이지가 포함되거나 데이터베이스로 이동하거나 경로를 찾아서 적절한 내용을 가져 와서 인쇄 할 수 있습니다.

.htaccess의 작업 예제를 원한다면 정확히 (index.php로 retect? q = path) Drupal이 어떻게하는지 살펴보십시오.

http://cvs.drupal.org/viewvc.py/drupal/drupal/.htaccess?revision=1.104

Palantir는 이것을 썼 듯이 mod_rewrite와 .htaccess를 사용하여 수행됩니다. 올바른 재 작성 조건을 .htaccess로 가져 오려면 Mod Recrite Generator를 살펴볼 수 있습니다 (예 : http://www.generate.net/mod-rewrite/). 훨씬 쉽게 만듭니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top