2013-05-02 2 views
1

내 URL을 다시 작성하려고하지만 여전히 성공하지 못했습니다. 나는 2 일 이후로 봤지만 아무런 성공도하지 못했다. 이 페이지URL에서 폴더 이름 숨기기를 다시 작성

localhost/project/index.php 

두 개의 버튼이 있습니다 : 나는

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} localhost [NC] 
RewriteCond %{REQUEST_URI} !^/folder1/ 
RewriteRule ^(.*)$ /folder1/$1 [L] 

이 내 디렉토리가 내 htaccess로 코드를 붙여 넣기하고있다. 버튼 하나를 클릭하면이 버튼을 두 후 리디렉션해야 클릭 한 경우/index.php에 다른 FOLDER1로 리디렉션해야 Folder2 폴더/index.php에

localhost/project/folder1/index.php 
localhost/project/folder2/index.php 

Basically I don't want display folder1 or folder2 directory names. 
any idea please thanks 

내가 같이해야 표시하려면 실제로 사용 URL :
로컬 호스트/project/

+1

. 어떤 방식으로 두 폴더를 구별해야합니다. –

+0

내가 표시하고자하는 실제 URL은 localhost/project/ – Raheel

+1

입니다. 파일 이름은? localhost/project/folder1 및 localhost/project/folder2 또는 무엇입니까? localhost/project가 두 개의 다른 위치를 참조하도록 할 수는 없습니다. –

답변

-1

브라우저가 /index.php를 요청하지만 서버가 /folder1/index.php에있는 파일을 실제로 사용한다고 가정합니다. 맞습니까? 그렇다면이 작동합니다 :

아파치 mod_rewrite 모듈이 설치되어 있는지 확인하십시오. 당신이 확실하지 않은 경우 해당 항목에 대한 참조를보고 할 수 있도록

RewriteEngine On 
RewriteRule ^/(.*)$ /folder1/$1 

규칙은, 정규 표현식을 사용 : 다음, 당신의 아파치 설정에서이 같은 가상 호스트 설정, 또는 htaccess로 파일을 사용하여 . 다른 지시문 (RewriteCond는 매우 유용 할 수 있음) 또는 규칙 옵션에 대한 자세한 내용은 매뉴얼을 읽으십시오.

+1

내 코드에서 이미이 규칙을 사용 했으므로 마지막 줄 규칙을 참조하십시오. – Raheel

0

mod_rewrite만을 사용하여 요청한 작업을 수행 할 수 없다고 생각됩니다.

문제는 당신이 개 별도의 위치에 1 개 개의 파일을 다시 작성하려고하는 것입니다 :

/project/index.php -> /project/folder1/index.php 
/project/index.php -> /project/folder2/index.php 

을이 논리로, mod_rewrite를 당신의 클라이언트가, 폴더 1 또는 Folder2 폴더 클릭 링크를 알고하지 않습니다.

당신이 찾고있는 것을 얻기 위해서는 클라이언트에서 '폴더'선택을 나타내는 쿠키를 설정 한 다음 PHP를 사용하여 최상의 동작을 결정해야합니다. 다음은 아이디어를 제공하는 예입니다. 이 코드는 제작 준비가되지 않았습니다.

/project/index.php : 당신은으로 표시하는 각 폴더를 원하는 어떤 URL 우리에게 필요

$cookie_folder = $_COOKIE['folder']; 
if($cookie_folder == "folder1")  { $folder = 'folder1'; } 
elseif($cookie_folder == "folder2") { $folder = 'folder2'; } 
require_once('/absolute/path/to/project/' . $folder . '/index.php');