ドキュメント
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;
#}
}