2013-06-10 1 views
0

나는이 간단한 .htaccess 파일 RewriteRule ^([0-9a-zA-Z:_-]+)/?$ index.php?page=$1을 가지고 있으므로 http://mywebsite.com/stuff을 만들 수 있으며 내용은 GET variable이됩니다. 이 기능을 확장하여 index.php?page=$2&page2=$3...처럼 무한정으로 만들고 싶습니다.이 경우에는 http://mywebsite.com/stuff/is/cool이 여전히 작동합니다..htaccess 여러 매개 변수 및 파일 리디렉션 구성

다른 문제는 URL http://mywebsite.com/stuff/을 입력하면 HTML이 stuff 폴더에 있다고 생각하는 것 같습니다. 따라서 파일 (CSS, 이미지 등)이로드되지 않습니다. 어떻게 해결할 수 있습니까?

는, 당신은 우리가이 파일을 그냥

$pages = $_GET['page']; 
$extracted_p = explode ("/",$pages); 
//and foreach extracted pages to decide what you want with it 

초 부분과 같은 URL을 처리에서 스크립트 항목이 의 index.php 될 것입니다 가정 해 봅시다 예를 들어 PHP 를 사용하여 URL을 처리 할 수 ​​

답변

1

을 주셔서 감사합니다 기본 URL 변수를 설정하고 HTML 기본 태그 을 스크립트의 가장 큰 헤더에 넣어야합니다.

$base_url = "http://localhost/myscript/"; 

<base href="<?php echo $base_url?>" /> 

HTML에서

하고 당신은 일을과 복잡함을하고 모든

1

입니다. 그냥 .htaccess에 넣고 :

FallbackResource index.php 

이 루트 폴더에 index.php에 의해 처리됩니다 기존 파일을 가리하지 않는 모든 요청을 보장합니다. 예를 들어,

$path = explode('/', trim($_SERVER['REQUEST_URI'], '/')); 

그리고 쉽게 거기에서 $path을 구문 분석 : : 다음 파일에서 할 다른 문제에 관해서는

if(!count($path)) 
    RenderHomepage(); 
elseif($path[0] == 'blog') 
    RenderBlog(); 
else 
{ 
    header('HTTP/1.1 404 Not Found'); 
    die('This page does not exist'); 
} 

, 그 브라우저의 관점에서 논리적 - 그것은 보지 않는 내부 구조이므로 URL에 따라 폴더 논리를 수행하고 있습니다. 을 참조하십시오. 따라서 상대 경로를 절대 사용하면 안되며 예를 들어 /static/mystyles.css에있는 루트 기반 자산을 지정하면 항상 문제가 해결됩니다.

+0

멋진 솔루션처럼 보이지만, FallbackResource index.php는 페이지 끝에 index.php 파일이 없으면 작동하지 않습니다. 나는 그것을 원하지 않았습니다. 이것을 http://mysite.com/potatoes와 같은 웹 폴더에 넣으면 작동하지 않습니다. http://mysite.com/potatoes/index.php 또는 http://mysite.com/potatoes/index.php/other/folders와 같이 작동합니다. http://mysite.com/potatoes/other/folders와 같이 작동시키는 방법은 무엇입니까? – steps

+0

정확히 [FallbackResource가 어떻게 작동하는지] (http://httpd.apache.org/docs/trunk/mod/mod_dir.html#fallbackresource)입니다. 그렇지 않으면'.htaccess'에 다른 쓰레기가있어서 그걸 막고 있습니다. 이것은 거기에있는 유일한 라인이어야합니다. –

+0

Strange ... 이것은 .htaccess 파일의 유일한 행입니다. 여기서는 끝에있는 index.php 표시와 만 작동합니다. 예제에서와 같이'FallbackResource index.php'와'FallbackResource/index.php'를 시도했는데 index.php 표시가없는 서브 폴더에서는 제대로 작동하지 않았습니다. – steps

관련 문제