ドキュメント

htaccessファイルなしでrewrite

短縮URLは、Webページの訪問者のための良いです。 あなたは、リライトしを使用して短縮URLを実現することができます。

nginxのは htaccessファイルを持っていない。 だから、mod_rewrite を使用することはできません。

しかし、nginxのは、自モジュールがあります:ngx_http_rewrite_moduleを。

nginxのにリライトしには、Apacheのmod_rewriteより柔軟と分かりやすいです。

リライトルールは、個々のウェブサイトの設定で記述する必要があります。

私達のオンライン htaccessファイルはnginxのに変換 を使ってnginxの設定にhtaccessファイルを変換することができます。

リライトルールの例

rewrite  ^/users/(.*)$  /show.php?user=$1  last;

リクエスト /users/alex/show.php?user=alex に書き換えられます。 同時に、訪問者は、ブラウザでその短縮URLが表示されます。

Drupal の例

Apacheのhtaccessファイル

<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$">
    Order allow,deny
</FilesMatch>

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]

nginxの設定

location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$ {
    deny all;
}

location ~* ^/(\..*|Entries.*|Repository|Root|Tag|Template)$ {
    deny all;
}

location / {
    try_files $uri /index.php$is_args$args;

    ## other way:
    #if (!-f $request_filename) {
    #   rewrite ^(.*)$ /index.php;
    #}
}

location /favicon.ico {
}

Joomla の例

RewriteBase /
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

nginxの設定

location / {
    try_files $uri /index.php$is_args$args;
}

Wordpress の例

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

nginxの設定

location / {
    try_files $uri /index.php$is_args$args;
}

MODX の例

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]

RewriteRule ^(manager|assets) - [L]

# For Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

nginxの設定

if ($http_user_agent ~* "internal dummy connection") {
    return 403;
}

location /manager {
}

location /assets {
}

location / {
    try_files $uri /index.php?q=$uri&$args;

    ## other way:
    #if (!-f $request_filename) {
    #   rewrite ^(.*)$ /index.php?q=$1;
    #}
}
Winginx © Alexei Shabalin, 2011-2023