2017-09-23 7 views
0

私はnginxに新しく、どのようにnginxで.htaccessを使用するのか分からず、nginx configuration.couldで生成されたコードをどこに置くのですか誰にもこれをnginxに変換するのを手伝ってください。どのようにnginxと.htaccessを使用してどこに置く?

はここでnginxのと場所を正確にこのコードを置くために私を導くために、これを変換するために私を助けてください、私の.htaccessファイル

<IfModule mod_rewrite.c> 

RewriteCond ${REQUEST_URI} ^.+$ 
RewriteCond %{REQUEST_FILENAME} \.(admin)$ [OR] 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -l 
RewriteRule^- [L] 
RewriteCond %{QUERY_STRING} [^a-z](cast|char|convert|declare|delete|drop|exec|insert|meta|script|select|set|truncate|update)[^a-z] [NC] 
RewriteRule (.*) - [F] 
RewriteEngine On 
# redirect with username 
Options +FollowSymLinks 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(admin|assets|include)(.*)?$ /$1$2 [L,QSA,R=301] 
RewriteRule ^user/([a-zA-Z0-9_-]+)$ user.php?username=$1 
RewriteRule ^user/([a-zA-Z0-9_-]+)/$ user.php?username=$1 
RewriteRule ^media/([a-zA-Z0-9_-]+)$ media.php?id=$1 
RewriteRule ^media/([a-zA-Z0-9_-]+)/$ media.php?id=$1 
RewriteRule ^tag/([^/.]+)$ tag.php?tag=$1 [QSA,L] 
RewriteRule ^tag/([^/.]+)/$ tag.php?tag=$1 [QSA,L] 
# turn on the mod_rewrite engine 
RewriteCond %{REQUEST_FILENAME}.php -f 
# IF the request filename with .php extension is a file which exists 
RewriteCond %{REQUEST_URI} !/$ 
# AND the request is not for a directory 
RewriteRule (.*) $1\.php [L] 
# redirect to the php script with the requested filename 



</IfModule> 

です。ありがとうございました!

+0

nginxのは、(読み).htaccessファイルを使用するだけでええ – Mark

+0

のapacheが、右nginxのためにhtaccessファイルを変換する方法はありませんか? –

答えて

0

Nginxはhtaccessファイルを使用しません。あなたのNginxサイトの設定では、/etc/nginx/sites-enabled/my-site.com.confのようなルールを指定する必要があります。既存のhtaccessファイルをNginx confに変換するにはthisのようなサービスを使用できますが、変換後に何か問題がないか再確認する必要があります。

以下は、上記のサービスから変更されて、必要な設定変更についての考えを得るためですが、現在のnginx設定に関連する変更があるかもしれません。

location ~ \.(admin)$ { 
} 
location ~ /$ { 
} 
location/{ 
if ($query_string ~* "[^a-z](cast|char|convert|declare|delete|drop|exec|insert|meta|script|select|set|truncate|update)[^a-z]"){ 
    return 403; 
} 
if (!-e $request_filename){ 
     rewrite ^/(admin|assets|include)(.*)?$ /$1$2 redirect; 
    } 
    rewrite ^(.*)$ /$1\.php break; 
} 
location /user { 
    rewrite ^/user/([a-zA-Z0-9_-]+)$ /user.php?username=$1; 
    rewrite ^/user/([a-zA-Z0-9_-]+)/$ /user.php?username=$1; 
} 
location /media { 
     rewrite ^/media/([a-zA-Z0-9_-]+)$ /media.php?id=$1; 
     rewrite ^/media/([a-zA-Z0-9_-]+)/$ /media.php?id=$1; 
} 
location /tag { 
    rewrite ^/tag/([^/.]+)$ /tag.php?tag=$1 break; 
    rewrite ^/tag/([^/.]+)/$ /tag.php?tag=$1 break; 
} 
+0

私の/ etc/nginx/sites-enabled /フォルダには何もありません。それは空です。私は/ etc/nginx/sitesにサーバ設定を追加しました。何ができるのですか? –

+0

あなたは 'ln -s /etc/sites-available/foo.com.conf/etc/sites-enabled/foo.com.conf'とシンボリックリンクし、' sudo nginx -s reload'を使ってnginxをリロードすることができます –

関連する問題