2014-05-12 2 views
-3

내 스크립트의 일부 설정을 지정하는 방법을 찾고 있습니다. URL 바에 입력 한 주소를 .htaccess로 확인하고 싶습니다. (LIKE domain.com/foldername).htaccess 확인 파일 또는 폴더가있는 경우

If (text = folder) 
    goes to folder 
elseif(text == file) 
    goes to file.php 
else 
    goes to sample.php?text 
: 다음 확인 폴더가 존재하는 것은 그래서 내가 htaccess로 예와 함께 설명 할 텍스트가 루트 폴더와 유사한 아니었다 경우, 폴더 파일을 확인하고 끝 부분에 특정 파일 간다 간다

업데이트 : 루트에 ticket.php 및 테마 폴더가 있습니다. URL이 domain.com/theme 인 경우 테마가 지정된 폴더로 이동하고 domain.com/tickets가 goe 인 경우 이동합니다. s ~ ticket.php

+1

이것은 mod_rewrite의 일반적인 사용 사례입니다. 명확한 설명 - 요청 된 URL이'/ file' 인 경우'/ file.php'가 있는지 확인 하시겠습니까? 아니면 사용자가 요청 URL로'/ file.php'를 제출하셨습니까? –

+0

여기에 몇 가지 흥미로운 내용이 있습니다. http://www.smashingmagazine.com/2011/11/02/introduction-to-url-rewriting/ 및 http://httpd.apache.org/docs/current/rewrite /flags.html – Medda86

+0

답장을 보내 주셔서 감사합니다. htaccess가 먼저 폴더 종료가 폴더로 이동하는지 확인하고 폴더가 존재하지 않는 경우 루트에있는 파일을 확인하고 파일이 존재하지 않으면 sample.php로 이동합니다 – Mohamm6d

답변

4

이런 식으로 뭔가?

RewriteEngine On 

# If (text = folder) 
RewriteRule ^folder/?$ - [L] 

# if(text == file.php) 
RewriteRule ^file\.php$ - [L] 

# else 
RewriteRule !^sample\.php /sample.php?text [L] 

또는 당신은 어떤 파일이나 폴더 을 의미하는 경우 :

RewriteEngine On 

# If (text = folder) 
# if(text == file.php) 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

# else 
RewriteRule !^sample\.php /sample.php?text [L] 
+0

고마워요. 정확히 이러하지 마세요. 확장자가없는 폴더와 파일을 확인하고 싶습니다. 체크 텍스트는 .php가없는 폴더 나 파일과 비슷합니다. – Mohamm6d

+0

두 파일 모두 작동하지 않았고, 루트에 ticket.php와 테마 폴더가 있습니다. , url이 domain.com/theme 인 경우 테마로 이동하고 domain.com/tickets가 ticket.php로 이동하면 – Mohamm6d

+0

서버에서 mod_rewrite가 활성화되어 있습니까? – Pitchinnate

1

이것은 매우 일반적인 패턴입니다.

이 규칙은 경로가 폴더 또는 파일이 아닌 경우에만 실행됩니다.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ sample.php?path=$1 [QSA] 
+0

그냥이 코드를 넣었지만 "server error"라는 메시지가 나타났습니다. ( – Mohamm6d

+0

구문에서 오류가 발생했다고 생각합니다. 그 중 하나가 작동한다고 생각합니다. 실례가 없으므로 확실하지 않습니다. – Halcyon

+0

Thanks 하지만 여전히 작동하지 않았다면, 주요 질문을 확인하십시오 : 나는 ticket.php와 루트에 테마 폴더를 가지고 있습니다. url이 domain.com/theme 인 경우 테마가 지정된 폴더로 이동하고 domain.com/tickets가 티켓으로 간다면 .php – Mohamm6d

관련 문제