2012-06-14 7 views
1

나는 좋은 결과와 함께 내 PHP 파일의 alla에 액세스하는 확장명을 지정하지 않고/it 디렉토리에 사용하고 있습니다. 즉, "http://www.mydomain.com/it/about.php"에 액세스 할 수 있습니다. "http://www.mydomain.com/it/about"을 작성하십시오.사용 - 대신 .htaccess와 _ (밑줄) 사용

Options -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ http://www.mydomain.com/it/$1.php [L] 

http://www.mydomain.com/it/question_answers.php에 액세스하려고 할 때도 마찬가지입니다. * "http://www.mydomain.com/it/question_answers.php"*에 직접 액세스하려면 어떻게해야합니까? "http://www.mydomain.com/it/question-answers"을 작성 하시겠습니까? 이전에 floowing 코드를 작성했지만 작동하지 않는 것 같습니다.

Redirect 301 /question-answer http://www.mydomain.com/it/question_answer.php 

내가 쓰는 경우 "http://www.mydomain.com/it/question-answer"브라우저가 페이지를 열려고하기 때문에 : "http://www.mydomain.com/it을 /question-answer.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php "

게시물의 작은 : 추상,

  • 나는 페이지 * "http://www.mydomain.com/it/question_answers.php"*이
  • 코드의 첫 번째 부분은 내가 "http://www.mydomain.com/it/question_answers"*
  • 다음 페이지에 액세스하고 싶습니다. "http://www.mydomain.com/it/question-answers"

고마워!

+0

serverfault.com으로 이동하십시오. –

답변

0

이 당신을 위해 작동합니다 :

Options -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ http://www.mydomain.com/$1.php 

RewriteRule it/question-answer\.php http://www.mydomain.com/it/question_answer.php [R=301,L] 

나는 두 가지를 변경 : 내가 처음 RewriteRule의 새로운 URL에 it/을 삭제. 그렇지 않으면 it/it/
두 번째 RewriteRule에도 \.php이 추가되었습니다. 이유는 모르지만 RewriteRule은 리디렉션 대신 패턴을 대체하는 것처럼 보입니다. 패턴이 it/question-answer이고 실제 URL이 it/questions-answer.php이면 .php은 대체되지 않습니다.