2017-01-03 4 views
2

이것은 내가 지금 당분간 나를 괴롭히는 원인이었습니다. .htaccess 파일을 사용하여 URL을 재 작성하는 방법에 대한 많은 정보가 있습니다. 그러나 노력의 시간 후에 나는 어떤 이유로 나의 URL에 어떤 효과든지 가지고 있기 위하여 처리하지 않았다. apache2.conf로 이동 명령을 시도했지만, 여전히 운이 없다. 나는 서버 관리자 물건을 잘하지 않지만 거기에 점점 해요. 비록 거기 밖으로 사이트의 톤, 아마 웹 디자이너 등 WordPress의 사이트에 의해 만들어진 것들 또는 당신은, 그들은 깨끗한 URL을 가지고 공지.URL 아파치 재 작성

AFAIK는 내가해야 할 일은 mod 재 작성 규칙 중 하나에 붙여 넣는 것입니다.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

내 public_html 디렉토리의 .htaccess 파일. 웬일인지 이것이 나를 위해 일하지 않는다. 저는 디지털 바다를 사용하고 있기 때문에 제가 서버 관리자와 함께 할 수 있다고 말했기 때문에 램프 서버를 설치하기위한 몇 가지 중요한 단계를 놓쳤습니다. 어떤 도움이나 제안도 감사드립니다!

+0

"URL 정리"란 정확히 무엇을 의미합니까? .php가 끝에 표시되지 않습니까? site.com/home이 home.php를 가리키고 site.com/faq가 faq.php를 가리 키지 만 폴더가 없으면 어떻게됩니까? 언급하고있는 웹 사이트에는 프레임 워크 나 CMS를 사용하고 있기 때문에 동적 인 데이터가 포함되어있어 좋아 보이는 URL이있을 것입니다. – aron9forever

+0

귀하의 .htaccess가 정상적으로 작동합니다. 어떤 오류가 발생하고 있습니까? – Rei

+0

나는 어떤 종류의 재 작성에 대해서도 이야기하고있다. .php를 제거하는 것에서 이전 페이지로 리디렉션하는 것까지 – Felix

답변

0

대부분의 PHP 프레임 워크 (wordpress, laravel 등)에서 '실제'디렉토리 또는 파일이 아닌 모든 URL 요청은 단일 진입 점으로 리디렉션됩니다. 예. index.php, 요청이 처리되고 그에 따라 페이지가 표시되는 곳. 여기

실제 디렉토리 나 파일이 아닌 모든 요청의 index.php로 리디렉션 및 처리하는 간단한 예입니다 :

htaccess로

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [NC,L] 

index.php를

<?php 

switch($_SERVER['REQUEST_URI']) { 
    default: 
     echo "404: Page cannot be found"; 
     break; 
    case 'page1': 
     echo "This is page 1"; 
     break; 
    case 'page2': 
     echo "This is page 2"; 
     break; 
    case 'page3': 
     echo "This is page 3"; 
     break;  
} 

http://somedomain.com/page1으로 가면 "This 페이지 1 "입니다. http://somedomain.com/page4으로 가면 "404 : 페이지를 찾을 수 없습니다"라는 메시지가 표시됩니다.

+1

그게 전부 컨트롤러 디자인 패턴입니다. 모든 요청은 단일 컨트롤러 (https://en.wikipedia.org/wiki/Front_controller)에서 처리합니다. –