2011-08-10 2 views
0

방금 ​​아파치와 함께 표준 공유 서버에서 centOS5.5로 옮겼습니다. 아파치를 처음 사용했습니다.아파치와 .htaccess

내 이전 공유 호스트 .htaccess 파일의 내용은 다음과 같습니다.

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^mywebsite.com 
RewriteRule (.*) http://www.mywebsite.com/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z0-9]+)$ /index.php?_url=$1 [NC,L,QSA] 

위의 내용을 Apache에 추가하는 단계는 무엇입니까? 즉 : 어떤 콘솔 명령, 어떤 파일을 열어야하며, 위의 모든 것을 htaccess 파일에서 가져와야합니까?

감사합니다.

+0

확실히 도움이 될 것입니다. http://httpd.apache.org/docs/current/mod/mod_rewrite.html 신속하고 보장 할 수없는 솔루션으로이 파일을 웹 사이트 루트에 배치하면됩니다. – J0HN

+0

@ J0HN : 감사합니다.하지만 웹 루트의 .htaccess 파일에서도 리디렉션이 작동하지 않습니다. – Justine4601

+0

아마도 mod_rewrite가 비활성화 되었습니까? http://stackoverflow.com/questions/7007041/change-url-in-codeigniter/7007124#7007124 일부 지침이 있습니다. – J0HN

답변

1

위의 내용은 Apache .htaccess 파일이므로 새로운 웹 루트에 배치하면됩니다.

+0

감사합니다.하지만 리디렉션이 작동하지 않습니다. (파일이 내 루트 (/ 파일의 루트 디렉토리 인 home/user/www/html – Justine4601

0

이 문제에 대한 몇 가지 이유가있다 :

  • .htaccess 파일은 아파치를 사용할 수 없습니다, 또는 그들이 다른 이름을 사용하고 있습니다. 설정에서 'AccessFileName'옵션을 확인해야합니다. 그것은 다음과 같이 보일 것이다 :

AccessFileName .htaccess

  • .htaccess 파일을 사용할 수 있지만, 재 작성 규칙을 해제 할 가능성이 제한됩니다. 당신이 당신의 웹 사이트에 적용되는 장소에, 당신이 그것을 바꿀 수 있다는 것을 발견하면

AllowOverride None

(나는 생각한다) : 당신의 라인을 따라 뭔가를 당신의 설정에 보일 것입니다

AllowOverride FileInfo

규칙의 사전 처리를 허용하는 당신의 위치를 ​​위해 노래하십시오.

  • mod_rewrite가 어떻게 든 비활성화됩니다. 나는 그것이 사실 일 수 있다고 생각하지 않는다. 왜냐하면 아파치가 .htaccess 파일을 구문 분석하려고 할 때 오류가 발생하기 때문이다. 그러나, 당신은 당신의 아파치 설정에서이 같은 라인을 보면이를 확인할 수 있습니다 : 어떻게 든이 규칙이 실패의 원인이되는 당신의 설정 변경

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

  • 뭔가. 이럴 것 같지는 않지만 아파치 conf 파일에 액세스 할 수 있다면 RewriteLog을 켜서 무슨 일이 일어 났는지 생각해 볼 수 있습니다.

마지막으로, 어떤 이유로 든 .htaccess 파일을 사용하지 않는다고 가정하면 (설정에 따라 몇 가지 인수가 분명히 있음), 설정에 따라 다시 쓰기 규칙을 몇 가지 다른 위치에 넣을 수 있습니다. 당신은 당신의 지시에 그것들을 넣을 수 있습니다.다시 쓰기 규칙에 대한 Apache docs은 꽤 좋은데, 나는 그들을 체크 아웃하는 것이 좋습니다.

관련 문제