0

nginxサーバーのいくつかのhtaccessルールを翻訳する必要があります。

私のhtaccessは:

RewriteEngine On
RewriteBase /mysite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mysite/index.php/$1 [L]

SetOutputFilter DEFLATE

<ifModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>

私はこの部分を翻訳しました

RewriteEngine On
RewriteBase /mysite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mysite/index.php/$1 [L]

それは次のように見えます

if (!-f $request_filename){
  set $rule_0 1$rule_0;
}
if (!-d $request_filename){
  set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
  rewrite ^/(.*)$ /mysite/index.php/$1 last;
}

大丈夫ですか?

次に、htaccessの2番目の部分(上に表示)を翻訳する必要があります。

どうすればそれを翻訳できますか?

4

1 に答える 1

2
if (!-f $request_filename){
   set $rule_0 1$rule_0;
}
if (!-d $request_filename){
   set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
   rewrite ^/(.*)$ /bitfungus/index.php/$1 last;
}

大丈夫ですか? `

いいえ、醜いです。NginxはApacheではないため、実際には必要のない場所でリライトを使用しないでください(約95%の場合、nginxでリライトは必要ありません)。

http://wiki.nginx.org/Pitfalls

正しい:

try_files $uri $uri/ /bitfungus/index.php$uri;
于 2012-11-27T19:17:10.633 に答える