2014-12-01 5 views
1

웹 사이트가 birdsovertheworld.com/인데 내가 아는 새의 형태로 내용을 추가하고 싶습니다. (내가 아는 한) 나는PHP 매개 변수/중첩 폴더/CMS

또는

B)가

을 birdsovertheworld.com/bird/show.php?bird=hummingbird 중 하나

A) birdsovertheworld.com/bird/hummingbird/을 수행 할 수 있습니다

a)는 각 새에 대한 폴더 + 색인 파일을 수동으로 만들어야하므로 매우 어리석은 것처럼 보입니다.

반면에 b)를 사용하면 (내가 아는 한) SEO와 가독성이 손상됩니다.

내가 익숙한 CMS는 내 목적 (WordPress, Joomla) +이 특정 상황에서 오히려 하나를 사용하지 않을 것입니다.

내 질문은 : - 어떻게 예를 들어 B로가는 폴더를 수동으로 인덱스 파일과없이 을 만드는없이 사용자와 검색 엔진 에 쉽게 읽을 URL을 달성 할 수있다?

감사합니다.

+0

아파치를 사용하고 있습니까? – JohnKiller

+0

예, 현재 저는 : -o입니까? – TheG1

답변

0

) 실제로 유효한 옵션입니다. 우리는 아파치가 파일 확장자를 가지고 있지 않아도 특정 스크립트를 PHP로 읽도록 강요함으로써 작업을 수행합니다.

$called = $_SERVER['REQUEST_URI']; 
$parts = explode("/",$called); 
$birdname = $parts[1]; 
switch($birdname) { // or whatever logic. 

아파치 구성 사용 ForceType 응용 프로그램/x 축 :

그래서, "새"는 URL 문자열의 내용에 따라 달라집니다 그 호출 된 URL을 읽고/포함 컨텐츠를 생성하는 PHP 스크립트입니다 httpd-php5. 이 브라우저에 의해 액세스되는 어떤 존재하지 않는 파일이나 폴더를 리디렉션 아파치를 알려줍니다

RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

: 당신이 보는 경우

0

예를 들어, 워드 프레스 .htaccess 파일로,이 같은 것을 볼 것입니다 index.php.

그러면 PHP 측에서 $_SERVER['REQUEST_URI'] 변수 안에 원래 요청 된 URL이 표시됩니다.

$path = explode('/', $_SERVER['REQUEST_URI']); 
switch($path[1]){ 
    case 'bird': 
     //do your things 
     break; 
    default: 
     //404 
} 

당신이 특정 새가 존재하거나하지 않을 경우 아파치는 알 수 없습니다 때문에 제대로 404 errors을 처리해야 기억 :

마지막으로, 당신은 요청 된 경로에 액세스 explode(...)를 사용할 수 있습니다.