2014-05-23 2 views
0

나는 다음 (PHPVibe를) 변환을 시도하고 있습니다를 nginx에 htaccess로 gninx을 지배하기 :변환 htaccess로는 재 작성 규칙

rewrite ^/embed/([^/]*)/$ /embed.php?id=$1 last; 
    rewrite ^/feed(.*)$ /feed.php last; 
if (!-f $request_filename){ 
    set $rule_2 1$rule_2; 
} 
if (!-d $request_filename){ 
    set $rule_2 2$rule_2; 
} 
if ($rule_2 = "21"){ 
    rewrite ^/(.*)/?$ /index.php?rp=$1 last; 
} 

을 : 이것은 내가 지금까지 무엇을 가지고

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/
RewriteRule ^embed/([^/]*)/$ /embed.php?id=$1 [L] 
RewriteRule ^feed(.*)$ feed.php [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/?$ index.php?rp=$1 [L] 
</IfModule> 
<ifModule mod_headers.c> 
    Header set Access-Control-Allow-Origin: * 
</ifModule> 

위의 코드는 대부분 mod_rewrite가 아닌 다른 페이지에서 404를 반환한다는 점을 제외하면 대부분 효과가있었습니다.

답변

0

은 일부 조정 후, 그래서/그것은 재 작성 엔진/사회자로 시작하는 URL을 건너하게해야 다른의 RewriteRules

RewriteRule ^moderator - [NC] 

앞에 다음 코드를 삽입

+0

하지만 .htaccess 규칙입니다. 위의 규칙을 nginx로 변환하려고했습니다. htaccess 규칙에 제외 기준을 포함 ​​할 필요는 없지만 도움이 필요한 nginx에는 필요합니다. – Micah

0
location/{ 
    try_files $uri $uri/ @index; 
} 

location /embed/ { 
    rewrite ^/embed/([^/]+)/$ /embed.php?id=$1; 
} 

location /feed { 
    rewrite^/feed.php; 
} 

location @index { 
    rewrite ^/(.*)/?$ /index.php?rp=$1; 
} 

location ~ \.php$ { 
    # fastcgi directives 
} 
+0

이것은 gnix 설정 오류를 일으키며 "/ moderator"디렉토리를 제외하는 주요 문제를 해결하는 것 같지 않습니다. – Micah

+0

오타가있었습니다. 그리고 사회자 디렉토리는 포함되지 않습니다. 중재자 역할과 관련한 말을하지 않았습니다 –

+0

원래 규칙을 사용하여 404를 반환하기 때문에 덮어 쓰기 규칙이 명시 적으로 제외되도록하고 싶었습니다. 그건 그렇고, 아직 작동하지 않습니다. 이제 PHP 코드가 다운로드됩니다. 내 버전에는 문제가 없습니다. 난 단지 사회자 폴더를 제외 할 수 있기를 원합니다. – Micah

0

시도 나는 마침내 nginx에 대한 적절한 재 작성 지시어를 알아 냈습니다. 누군가 궁금해하는 경우에 대비해서.

rewrite ^/embed/([^/]*)/$ /embed.php?id=$1 last; 
    rewrite ^/feed(.*)$ /feed.php last; 
if (!-e $request_filename) 
    { 
     rewrite ^/(.*)/?$ /index.php?rp=$1 last; 
    }