---
title: "Nginx サーバーで Flarum の擬似静的ルールを設定する - 憂いを忘れる一枚"
description: "以前の記事のコメント欄で、Flarum を Nginx 上で動かすと 404 などのエラーが発生するという声が多く寄せられました。これは、擬似静的ルールが正しく設定されていないことが原因のようです。公式ドキュメントでは、さまざまな環境における Flarum の擬似静的設定について詳しく説明されており、Nginx のルー"
canonical_url: "https://www.ikxin.com/ja/article/nginx-flarum-rewrite"
last_updated: "2026-09-16T09:59:27.259Z"
locale: ja
meta:
  "og:description": "以前の記事のコメント欄で、Flarum を Nginx 上で動かすと 404 などのエラーが発生するという声が多く寄せられました。これは、擬似静的ルールが正しく設定されていないことが原因のようです。公式ドキュメントでは、さまざまな環境における Flarum の擬似静的設定について詳しく説明されており、Nginx のルー"
  "og:image": "https://www.ikxin.com/_og/d/h_630%2Ca_~Tmdpbngg44K144O844OQ44O844GnIEZsYXJ1bSDjga7mk6zkvLzpnZnnmoTjg6vjg7zjg6vjgpLoqK3lrprjgZnjgosgLSDmhoLjgYTjgpLlv5jjgozjgovkuIDmnpo%2Cc_Article%2Ctitle_~Tmdpbngg44K144O844OQ44O844GnIEZsYXJ1bSDjga7mk6zkvLzpnZnnmoTjg6vjg7zjg6vjgpLoqK3lrprjgZnjgos%2Cdescription_~5Lul5YmN44Gu6KiY5LqL44Gu44Kz44Oh44Oz44OI5qyE44Gn44CBRmxhcnVtIOOCkiBOZ2lueCDkuIrjgafli5XjgYvjgZnjgaggNDA0IOOBquOBqeOBruOCqOODqeODvOOBjOeZuueUn-OBmeOCi-OBqOOBhOOBhuWjsOOBjOWkmuOBj-WvhOOBm-OCieOCjOOBvuOBl-OBn-OAguOBk-OCjOOBr-OAgeaTrOS8vOmdmeeahOODq-ODvOODq-OBjOato-OBl-OBj-ioreWumuOBleOCjOOBpuOBhOOBquOBhOOBk-OBqOOBjOWOn-WboOOBruOCiOOBhuOBp-OBmeOAguWFrOW8j-ODieOCreODpeODoeODs-ODiOOBp-OBr-OAgeOBleOBvuOBluOBvuOBqueSsOWig-OBq-OBiuOBkeOCiyBGbGFydW0g44Gu5pOs5Ly86Z2Z55qE6Kit5a6a44Gr44Gk44GE44Gm6Kmz44GX44GP6Kqs5piO44GV44KM44Gm44GK44KK44CBTmdpbngg44Gu44Or44O8%2CsiteName_~5oaC44GE44KS5b-Y44KM44KL5LiA5p6a%2CsiteHost_www.ikxin.com%2Cp_Ii9qYS9hcnRpY2xlL25naW54LWZsYXJ1bS1yZXdyaXRlIg%2Cs_msjpCxFfzqOX_ZWV.png"
  "og:image:alt": "Nginx サーバーで Flarum の擬似静的ルールを設定する - 憂いを忘れる一枚"
  "og:image:height": "630"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Nginx サーバーで Flarum の擬似静的ルールを設定する"
  "twitter:image": "https://www.ikxin.com/_og/d/h_630%2Ca_~Tmdpbngg44K144O844OQ44O844GnIEZsYXJ1bSDjga7mk6zkvLzpnZnnmoTjg6vjg7zjg6vjgpLoqK3lrprjgZnjgosgLSDmhoLjgYTjgpLlv5jjgozjgovkuIDmnpo%2Cc_Article%2Ctitle_~Tmdpbngg44K144O844OQ44O844GnIEZsYXJ1bSDjga7mk6zkvLzpnZnnmoTjg6vjg7zjg6vjgpLoqK3lrprjgZnjgos%2Cdescription_~5Lul5YmN44Gu6KiY5LqL44Gu44Kz44Oh44Oz44OI5qyE44Gn44CBRmxhcnVtIOOCkiBOZ2lueCDkuIrjgafli5XjgYvjgZnjgaggNDA0IOOBquOBqeOBruOCqOODqeODvOOBjOeZuueUn-OBmeOCi-OBqOOBhOOBhuWjsOOBjOWkmuOBj-WvhOOBm-OCieOCjOOBvuOBl-OBn-OAguOBk-OCjOOBr-OAgeaTrOS8vOmdmeeahOODq-ODvOODq-OBjOato-OBl-OBj-ioreWumuOBleOCjOOBpuOBhOOBquOBhOOBk-OBqOOBjOWOn-WboOOBruOCiOOBhuOBp-OBmeOAguWFrOW8j-ODieOCreODpeODoeODs-ODiOOBp-OBr-OAgeOBleOBvuOBluOBvuOBqueSsOWig-OBq-OBiuOBkeOCiyBGbGFydW0g44Gu5pOs5Ly86Z2Z55qE6Kit5a6a44Gr44Gk44GE44Gm6Kmz44GX44GP6Kqs5piO44GV44KM44Gm44GK44KK44CBTmdpbngg44Gu44Or44O8%2CsiteName_~5oaC44GE44KS5b-Y44KM44KL5LiA5p6a%2CsiteHost_www.ikxin.com%2Cp_Ii9qYS9hcnRpY2xlL25naW54LWZsYXJ1bS1yZXdyaXRlIg%2Cs_msjpCxFfzqOX_ZWV.png"
  "twitter:image:alt": "Nginx サーバーで Flarum の擬似静的ルールを設定する - 憂いを忘れる一枚"
---

> Index of every page on this site: [llms.txt](https://www.ikxin.com/llms.txt)

# **Nginx サーバーで Flarum の擬似静的ルールを設定する**

2020.03.08 7,454  0

以前の記事のコメント欄で、Flarum を Nginx 上で動かすと 404 などのエラーが発生するという声が多く寄せられました。これは、擬似静的ルールが正しく設定されていないことが原因のようです。公式ドキュメントでは、さまざまな環境における Flarum の擬似静的設定について詳しく説明されており、Nginx のルールは次のとおりです。

 Nginx

```
include /path/to/flarum/.nginx.conf;
```

これは Flarum のルートディレクトリにある `.nginx.conf` ファイルを指定するという意味です。この方法の利点は、Flarum を更新するたびに擬似静的ルールを更新する必要があるかどうかを考えなくて済むことです。ただし、宝塔パネルの擬似静的設定に `.nginx.conf` ファイルの内容を直接記述することもできます。

以下は、一般的な 3 つの環境における Flarum の擬似静的ルールです。

## Apache

 Apache

```
<IfModule mod_rewrite.c>
  RewriteEngine on

  # Ensure the Authorization HTTP header is available to PHP
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

  # Uncomment the following lines if you are not using a `public` directory
  # to prevent sensitive resources from being exposed.
  # RewriteRule /\.git / [F,L]
  # RewriteRule ^composer\.(lock|json)$ / [F,L]
  # RewriteRule ^config.php$ / [F,L]
  # RewriteRule ^flarum$ / [F,L]
  # RewriteRule ^storage/(.*)?$ / [F,L]
  # RewriteRule ^vendor/(.*)?$ / [F,L]

  # Pass requests that don't refer directly to files in the filesystem to index.php
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^ index.php [QSA,L]
</IfModule>

# Disable directory listings
Options -Indexes

# MultiViews can mess up our rewriting scheme
Options -MultiViews

# The following directives are based on best practices from H5BP Apache Server Configs
# https://github.com/h5bp/server-configs-apache

# Expire rules for static content
<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresDefault                                      "access plus 1 month"
  ExpiresByType text/css                              "access plus 1 year"
  ExpiresByType application/atom+xml                  "access plus 1 hour"
  ExpiresByType application/rdf+xml                   "access plus 1 hour"
  ExpiresByType application/rss+xml                   "access plus 1 hour"
  ExpiresByType application/json                      "access plus 0 seconds"
  ExpiresByType application/ld+json                   "access plus 0 seconds"
  ExpiresByType application/schema+json               "access plus 0 seconds"
  ExpiresByType application/vnd.geo+json              "access plus 0 seconds"
  ExpiresByType application/vnd.api+json              "access plus 0 seconds"
  ExpiresByType application/xml                       "access plus 0 seconds"
  ExpiresByType text/calendar                         "access plus 0 seconds"
  ExpiresByType text/xml                              "access plus 0 seconds"
  ExpiresByType image/vnd.microsoft.icon              "access plus 1 week"
  ExpiresByType image/x-icon                          "access plus 1 week"
  ExpiresByType text/html                             "access plus 0 seconds"
  ExpiresByType application/javascript                "access plus 1 year"
  ExpiresByType application/x-javascript              "access plus 1 year"
  ExpiresByType text/javascript                       "access plus 1 year"
  ExpiresByType application/manifest+json             "access plus 1 week"
  ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
  ExpiresByType text/cache-manifest                   "access plus 0 seconds"
  ExpiresByType text/markdown                         "access plus 0 seconds"
  ExpiresByType audio/ogg                             "access plus 1 month"
  ExpiresByType image/bmp                             "access plus 1 month"
  ExpiresByType image/gif                             "access plus 1 month"
  ExpiresByType image/jpeg                            "access plus 1 month"
  ExpiresByType image/png                             "access plus 1 month"
  ExpiresByType image/svg+xml                         "access plus 1 month"
  ExpiresByType image/webp                            "access plus 1 month"
  ExpiresByType video/mp4                             "access plus 1 month"
  ExpiresByType video/ogg                             "access plus 1 month"
  ExpiresByType video/webm                            "access plus 1 month"
  ExpiresByType application/wasm                      "access plus 1 year"
  ExpiresByType font/collection                       "access plus 1 month"
  ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
  ExpiresByType font/eot                              "access plus 1 month"
  ExpiresByType font/opentype                         "access plus 1 month"
  ExpiresByType font/otf                              "access plus 1 month"
  ExpiresByType application/x-font-ttf                "access plus 1 month"
  ExpiresByType font/ttf                              "access plus 1 month"
  ExpiresByType application/font-woff                 "access plus 1 month"
  ExpiresByType application/x-font-woff               "access plus 1 month"
  ExpiresByType font/woff                             "access plus 1 month"
  ExpiresByType application/font-woff2                "access plus 1 month"
  ExpiresByType font/woff2                            "access plus 1 month"
  ExpiresByType text/x-cross-domain-policy            "access plus 1 week"
</IfModule>

# Gzip compression
<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE "application/atom+xml" \
                                  "application/javascript" \
                                  "application/json" \
                                  "application/ld+json" \
                                  "application/manifest+json" \
                                  "application/rdf+xml" \
                                  "application/rss+xml" \
                                  "application/schema+json" \
                                  "application/vnd.geo+json" \
                                  "application/vnd.ms-fontobject" \
                                  "application/wasm" \
                                  "application/x-font-ttf" \
                                  "application/x-javascript" \
                                  "application/x-web-app-manifest+json" \
                                  "application/xhtml+xml" \
                                  "application/xml" \
                                  "font/collection" \
                                  "font/eot" \
                                  "font/opentype" \
                                  "font/otf" \
                                  "font/ttf" \
                                  "image/bmp" \
                                  "image/svg+xml" \
                                  "image/vnd.microsoft.icon" \
                                  "image/x-icon" \
                                  "text/cache-manifest" \
                                  "text/calendar" \
                                  "text/css" \
                                  "text/html" \
                                  "text/javascript" \
                                  "text/plain" \
                                  "text/markdown" \
                                  "text/vcard" \
                                  "text/vnd.rim.location.xloc" \
                                  "text/vtt" \
                                  "text/x-component" \
                                  "text/x-cross-domain-policy" \
                                  "text/xml"
    </IfModule>
</IfModule>

# Fix for https://httpoxy.org vulnerability
<IfModule mod_headers.c>
  RequestHeader unset Proxy
</IfModule>
```

## Nginx

 Nginx

```
# Pass requests that don't refer directly to files in the filesystem to index.php
location / {
  try_files $uri $uri/ /index.php?$query_string;
}

# The following directives are based on best practices from H5BP Nginx Server Configs
# https://github.com/h5bp/server-configs-nginx

# Expire rules for static content
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
  add_header Cache-Control "max-age=0";
}

location ~* \.(?:rss|atom)$ {
  add_header Cache-Control "max-age=3600";
}

location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|mp4|ogg|ogv|webm|htc)$ {
  add_header Cache-Control "max-age=2592000";
  access_log off;
}

location ~* \.(?:css|js)$ {
  add_header Cache-Control "max-age=31536000";
  access_log off;
}

location ~* \.(?:ttf|ttc|otf|eot|woff|woff2)$ {
  add_header Cache-Control "max-age=2592000";
  access_log off;
}

# Gzip compression
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
    application/atom+xml
    application/javascript
    application/json
    application/ld+json
    application/manifest+json
    application/rss+xml
    application/vnd.geo+json
    application/vnd.ms-fontobject
    application/x-font-ttf
    application/x-web-app-manifest+json
    application/xhtml+xml
    application/xml
    font/opentype
    image/bmp
    image/svg+xml
    image/x-icon
    text/cache-manifest
    text/css
    text/plain
    text/vcard
    text/vnd.rim.location.xloc
    text/vtt
    text/x-component
    text/x-cross-domain-policy;
```

## Caddy

 CADDY

```
www.example.com {
    root /var/www/flarum/public
    rewrite {
        to {path} {path}/ /index.php
    }
    fastcgi / /var/run/php/php7.2-fpm.sock php
    header /assets {
        +Cache-Control "public, must-revalidate, proxy-revalidate"
        +Cache-Control "max-age=25000"
        Pragma "public" 
    }
    gzip
}
```

## **コメント**

(0)

まだコメントはありません

## **コメントを投稿**

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://www.ikxin.com/ja#website","@type":"WebSite","description":"「憂いを忘れる一枚」は、技術探究と日々の暮らしをテーマにした個人サイトです。Web 開発、バックエンド、DevOps の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。","inLanguage":"ja-JP","name":"憂いを忘れる一枚","url":"https://www.ikxin.com/ja","translationOfWork":{"@id":"https://www.ikxin.com/#website"}},{"@id":"https://www.ikxin.com/ja/article/nginx-flarum-rewrite#webpage","@type":"WebPage","description":"以前の記事のコメント欄で、Flarum を Nginx 上で動かすと 404 などのエラーが発生するという声が多く寄せられました。これは、擬似静的ルールが正しく設定されていないことが原因のようです。公式ドキュメントでは、さまざまな環境における Flarum の擬似静的設定について詳しく説明されており、Nginx のルー","name":"Nginx サーバーで Flarum の擬似静的ルールを設定する","url":"https://www.ikxin.com/ja/article/nginx-flarum-rewrite","isPartOf":{"@id":"https://www.ikxin.com/ja#website"},"potentialAction":[{"@type":"ReadAction","target":["https://www.ikxin.com/ja/article/nginx-flarum-rewrite"]}]}]}
```

## Sitemap

See the full [sitemap](https://www.ikxin.com/sitemap.md) for all pages.
