친숙한 URL을 수동으로 만드는 방법은 무엇입니까? (PHP) 그래서 간단한 문자열을 요청한 echos 파일을 만들었습니다. 이제 형태가 있습니다 echo.php?string=bla+bla+bla&font=times
제가 좋아할 것 같아요 echo/bla+bla+bla/times
어떻게 그런 일을 (외부 libs 사용하지)?친숙한 URL을 수동으로 만드는 방법은 무엇입니까? (PHP)
답변
당신은 쉽게 당신을 위해 더 쉬울 수 있습니다 PHP로 관리를 재 작성 URL, 이동할 수 있습니다 rewrite.php
에서
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . rewrite.php [L]
을 당신은 정규식 URL의 배열을 가지고 패턴. 이것들은 현재의 URL ($_SERVER['REQUEST_URI']
)을 일치시키고 URL의 일부를 실제 파일로 넘기는 데 사용될 수 있습니다. 그런 다음 매개 변수를 $_GET
배열에 넣을 수 있으며 올바른 파일을 포함 할 수 있습니다.
예를 들어, 배열은 다음과 같이 수 :
$rules = array(
array(
'articles/view/([0-9]+)',
'articles.php?id=$1'
),
array(
'articles/delete/([0-9]+)',
'articles.php?id=$1&action=delete'
),
);
Rewrite engine은 Apache 서버에서 mod_rewrite이어야합니다.
echo.php
을 echo
으로 바꾸려면 웹 서버용 다시 쓰기 기능을 사용해야합니다. 아파치를 사용하고 있다면 mod_rewrite이 왕이다.
나머지 부분은 $_SERVER['REQUEST_URI']
을 regex으로 구문 분석하면됩니다. mod_rewrite를 사용하여이 부분을 수행 할 수도 있지만 옵션이 아닌 경우 PHP에서 직접 수행 할 수 있습니다.
문제가있다 "나머지는"확실히 그렇게 쉬운 일이 아니다. mod_rewrite 나 비슷한 것을 아파치와 다른 서버에서 사용해야 PHP를 사용하여 다시 쓰기 작업을 할 수 있습니다 (물론'index.php/article/id/123' 라인을 따라 뭔가 다른 것을 말할 때를 제외하고).) – Franz
@Franz mod_rewrite가 옵션이 아니라면,'echo.php/bla + bla + bla/times'를 받아 들일 수 있고 PHP 만 사용하여 파싱 할 수 있습니다. 또는 하이브리드 솔루션 인 mod_rewrite를 사용하여'echo/anything'을'echo.php/anything'에 재 작성한 다음 PHP 기반 URL 구문 분석을 사용할 수 있습니다.또는 mod_rewrite를 독점적으로 사용할 수도 있습니다. – Dathan
의미가 있습니다. 명확히 해 주셔서 감사합니다. – Franz
이것은 일반적으로 mod_rewrite
아파치 확장으로 이루어집니다.
RewriteEngine On
RewriteRule ^echo/(.+?)/(.+)$ echo.php?string=$1&font=$2 [L]
첫 번째 줄은 mod_rewrite
을 활성화 : 같은 htaccess로 파일에서, 당신이 뭔가를 넣어 것입니다. 두 번째는 regular expression을 설정하여 해당 패턴과 일치하는 요청을 원하는 PHP 파일로 라우팅합니다.
새로운 젠드 프레임 워크 프로젝트에서 생성 된 .htaccess 파일을 살펴보십시오. 나머지 프레임 워크없이 사용하거나 자체 URL 재 작성 메소드의 예제로 사용할 수 있습니다.
mod_rewrite를 통해 URL을 다시 쓰는 대신 php 파일을 404 오류 처리기로 설정할 수 있습니다. 이 파일은 URL을 분석하고 URL 처리 방법을 결정할 수 있습니다.
$path_parts = explode('/', $_SERVER['PATH_INFO']);
echo $path_parts[0]. ', '.$path_parts[1].' font';
성능상의 이유로, 당신은 처리를 위해 PHP로 (즉, GIF, JPG, PNG 등) 특정 파일 형식을 보내지 않도록 아파치를 구성 싶지 않을 것이다.
응답에서 언급 한 것처럼 수행 할 수있는 여러 가지 작업이 있지만 웹 서버의 구성을 조정하지 않으면 작업을 수행 할 수 없습니다. 아주 간단한한다 RewriteRule과 함께, 404 핸들러의 아이디어와 유사
올바른 헤더 ('HTTP 200')를 보내는 것을 잊지 마십시오. 내가 기억하는 한, 일부 서버는 404 오류 처리기를 사용할 때 자동으로'404' 헤더를 보냅니다. – Franz
- 1. 친숙한 URL을 재현하는 방법은 무엇입니까?
- 2. 친숙한 URL을 만드는 방법 asp.net 2
- 3. CS 파일에 친숙한 URL을 만드는 방법
- 4. .htaccess로 친숙한 URL을 만들려면 어떻게해야합니까?
- 5. 스프링 포틀릿 URL을 친숙하게 만드는 방법은 무엇입니까?
- 6. mod_security에 친숙한 PHP 코드 작성 방법은 무엇입니까?
- 7. 서블릿에 URL을 만드는 방법은 무엇입니까?
- 8. 랜덤 URL을 만드는 방법은 무엇입니까?
- 9. ActionLink가 RouteLink에서 친숙한 URL을 생성하는 이유는 무엇입니까?
- 10. ASP.net에서 친숙한 URL을 구현하는 가장 좋은 방법은 무엇입니까?
- 11. pymongo를 사용하여 수동으로 DBRef를 만드는 방법은 무엇입니까?
- 12. URL을 우호적으로 만드는 가장 좋은 방법은 무엇입니까?
- 13. 편안한 리소스를위한 "편집"URL을 만드는 방법은 무엇입니까?
- 14. 레일에서 link_to를 얻는 방법은 SEO 친숙한 URL을 출력합니까?
- 15. Liferay 포털에서 친숙한 URL을 구현하는 방법
- 16. 스트라이프 응용 프로그램에서 친숙한 URL을 사용하도록 변환
- 17. ASP.NET MVC에서 친숙한 URL을 만들려면 어떻게해야합니까?
- 18. Symfony PHP에서 친숙한 URL을 생성하려면 어떻게해야합니까?
- 19. 수동으로 jquery로 기록에 URL을 추가하십시오.
- 20. PHP 라이브러리를 만드는 방법, PHP 라이브러리를 독립적으로 만드는 방법은 무엇입니까?
- 21. dendrogram (또는 "hclust") 객체를 수동으로 만드는 방법은 무엇입니까? (R)
- 22. 수동으로 지정한 경우에만 실행되는 단위 테스트를 만드는 방법은 무엇입니까?
- 23. 이 .htaccess 파일을 사용하여 친숙한 URL을 사용할 수 있습니다!
- 24. 결제 게이트웨이에 대한 "반환"URL을 만드는 방법은 무엇입니까?
- 25. 패널을 수동으로 스크롤하는 방법은 무엇입니까?
- 26. 수동으로 UITableViewCell을 설정하는 방법은 무엇입니까?
- 27. PHP 코드를 만드는 방법은?
- 28. mod_rewrite를 사용하여 여러 변수가있는 친숙한 URL을 구현하는 가장 좋은 방법은 무엇입니까?
- 29. ID 기반 PHP 폼을 만드는 방법은 무엇입니까?
- 30. PHP 메서드 링크를 만드는 방법은 무엇입니까?
필자는 약간 늦었다는 것을 알지만,이 스타일의 팬이 아니라는 이유는 PHP의 'mod_rewrite'구문과 똑같은 것 같지만 PHP에서 다시 구현된다는 것입니다. 실제로 바퀴를 다시 짓는 것 같아요. 물론, 단일 PHP 파일보다는 컨트롤러 액션으로 라우팅하는 MVC 스타일처럼 PHP 라우터가 적절한 경우가 있습니다. 그렇지만, 똑같은 일을하는'mod_rewrite'를 고수하십시오. – Matchu
그러나 사용하는 서버 시스템에 관계없이 작동해야하는 소프트웨어를 만드는 경우 특히 유용합니다. 물론 위에서 언급 한 mod_rewrite 규칙을 추가해야하지만 전체 경로 목록보다 다른 서버 (예 : lighttpd)에서 복제하는 것이 훨씬 쉽습니다. 미성년자 일 수도 있지만 유용하다고 생각합니다. 물론, 이보다 더 고급 시스템을 만들 수 있습니다 (mod_rewrite와 유사). – Franz