2010-06-07 3 views
0

지금 mod_rewrite를 가지고 놀고 있습니다..htaccess 파일을 var/www 폴더에두면 웹 사이트가 엉망이됩니다.

그러나 var/www/안에 htaccess 파일을 넣어야합니다. URL을 단순히 이름 바꾸기 만하면됩니다 ... 내 웹 사이트를 열면 내 웹 사이트가 매우 이상하고 기본적으로 아무것도 작동하지 않습니다. ..

정상적으로 작동하려면 htaccess 파일에 필요한 코드가 있습니까? 여기

내가 지금까지 가지고있는 htaccess로 파일입니다

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/ad\.php 
RewriteRule ^(.*)$ ad.php?ad_id=$1 [L] 

내 DocumentRoot에도 var에/www가 설정/내 전체 웹 사이트의 루트가 ...이 있습니다 (index.html을 등 등) .. .

htaccess에 대해 무엇이 빠져 있습니까?

더 많은 입력이 알려해야하는 경우 ...

+4

"웹 사이트가 매우 이상하게되고 기본적으로 아무것도 작동하지 않습니다."- HTTP 500 오류와 비슷합니까? 모든 사업부가 테이블로 변합니다. 마법의 용들이 모니터에서 날아간 다고요? (힌트 : 조금 더 구체화하십시오) –

+2

글쎄, 당신은 모든 단일 페이지를'ad.php'로 리다이렉트하고 있습니다 ... 당신이 원하는 것은 무엇입니까? – nico

+0

글쎄, 당신이 물어 사람들에게 : http://stackoverflow.com/questions/2991938/very-simple-mod-rewrite-questions, 어떤 규칙에 의해 광고인지 아닌지를 잊어 버려라. – Wrikken

답변

1

귀하의 CSS 파일, js 또는 이미지가로드되지 않은 것 같습니다. 또한 귀하의 링크 중 어느 것도 작동하지 않습니다. 그렇다면 문제는 RewriteRule에있을 수 있습니다. 기본적으로 규칙이 모든 요청을 ad.php에 전달하도록 아파치에 알리는 것입니다.

광고 링크 만 규칙의 영향을 받도록 RewriteRule을 미세 조정해야합니다.

첫째,이 같은 RewriteRule의 확대를 통해 :

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_URI} !^/ad\.php 
RewriteRule ^(.*)$ ad.php?ad_id=$1 [L] 

내가 요청 된 파일 이름이 디렉토리, 기존 파일 또는없는 경우에만 규칙을 적용하기 위해 아파치를 말하고있다 추가 한이 3 선 심볼릭 링크 - CSS 및 이미지와 같은 정적 인 내용을 처리해야합니다. 링크가있는 다른 페이지를 가리키는 페이지가 물리적으로 서버의 HDD (일반 html 또는 PHP 파일)에있는 경우 다시 작업을 시작해야합니다.

하지만 이미 (Little mod_rewrite problem)이 질문에 대해 말씀 드렸듯이이 규칙을 미세 조정해야 광고 만 규칙 및 기타 사항에 의해 충족됩니다.

0

이것은 완전한 답변은 아니지만 당신을 도울 수있는 더 많은 정보를 제공합니다.

  1. 동일한 Options +FollowSymLinks -Indexes
  2. 는 모든 호스트의 .htaccess를 허용 라인, 또는 모든 htaccess로 명령에 옵션을 넣을 수 있습니다. 이로 인해 문제와 페이지가 작동하지 않을 수 있습니다.
  3. 문제의 줄을 찾을 때까지 모든 줄을 주석 처리 (각 줄 앞에 # 기호 사용) 한 다음 맨 위에서 시작하여 주석 처리를 제거하십시오.
관련 문제