2013-03-09 3 views
-1

다음 URL이 있습니다. myweb.com/products
내 호스트에 "제품"이라는 디렉토리가 있습니다.
.htaccess 어떻게 디렉토리를 무시하나요?

위 URL을 입력하면 나를 myweb.com/products/로 리디렉션하고 디렉토리 내에있는 파일을 나열합니다.
작동 방식을 무시하거나 비활성화 할 수 있으므로 이름으로 디렉토리를 검색하는 대신 해당 이름의 파일을 찾으려고합니까?

그래서 myweb.com/products를 입력 할 때 파일 이름의 제품을 찾기 위해 노력할 것입니다 그것을 찾을 수 나던 경우 403 페이지

*이 예입니다로 보내드립니다. 나는 더 많은 디렉토리가있다.

편집 :
어쩌면 나는 내 자신을 충분히 설명하지 못했습니다.
가 나는 제품부터
폴더입니다 redirect.php 나에게 모든 것을 리디렉션 다음 RewriteRule의

RewriteRule ^(.*).php redirect.php [L,QSA] 

을 가지고, 그것은 ... 나를 redirect.php 문제를 이잖아하는

답변

2

이 이름의 디렉토리가 있으면, apache는 그 이름을 가진 파일을 찾을 수 없습니다.

는 디렉토리 목록이 디렉토리의 내용이 나열되는 것을 방지 할 수 Options 지침을

Options -Indexes 

를 사용 해제하십시오. 그러나 오류 메시지는 404 페이지가 아니라 403 금지되어 있습니다. 존재하는 경우

또한, 그렇지 않으면

DirectoryIndex disabled 

와 함께 index 파일의 검색을 해제해야합니다, 아파치는 다른 index.html, index.php를, ... 파일을 보여줍니다.

슬래시을 방지하려면이 RewriteRule

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule (.+)/ $1.php 

이 사용할 수

DirectorySlash off 

가 추가 동일한 이름과 .php을 가진 파일을 재 작성하는 데 사용하는 디렉토리의 마지막에 추가 요청 된 경로가 디렉토리인지 여부를 확인하고, 동일한 경우 동일한 이름을 가진 일반 파일을 확인하고 확장자로 .php을 검사합니다. 둘 다 true이면 PHP 파일로 다시 작성됩니다.대신 단지 재 작성의 리디렉션을 원하는 경우

, 당신은 RewriteRule의

RewriteRule (.+)/ $1.php [R,L] 

R 플래그를 추가하고 대신 product.phpredirect.php에 다시 작성해야하는 경우, 사용해야합니다

RewriteRule (.+)/ redirect.php 

모든 것을 합치면 단순화됩니다.

DirectorySlash off 

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule .+ redirect.php [L] 
+0

403에 제 질문을 편집했습니다. 403 오류가되고 싶지 않습니다. 대신 제품 파일로 이동해야합니다. godaddy에서는 기본적으로 작동합니다. 이제 hostgator – Ron

+0

@Ron으로 이동했습니다. 이미 제품 디렉토리가있는 경우 Apache가 제품 파일을 어떻게 찾을 수 있습니까? 디렉토리 *와 * 같은 이름의 파일을 가질 수 없습니다. –

+0

파일 이름은 ofcourse products.php입니다. 내가하는 일을 내가 알릴 것이다. rewriterule을 사용하여 redirect.php라는 페이지로 모든 것을 리디렉션합니다. 이제 myweb.com/products에 액세스하려고 할 때 rewriterule 이후로 redirect.php로 리다이렉트해야하지만 제품이 폴더/디렉토리이기 때문에 그럴 수 없습니다. – Ron

0

쓰기 a를 리디렉션 나던 myWeb.com/products의 index.php를 사용하여 원하는 이름을 걸러 낼 수 있습니다.

+0

무슨 뜻이야? 빈 index.php를 제품에 넣었지만 여전히 myweb.com/products/로 리디렉션됩니다. 비록 그것이 파일을 나열하지 않습니다 ..하지만 그게 내가 원하는 건 아니에요. – Ron

관련 문제