<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.doge24190.top/index.php?action=history&amp;feed=atom&amp;title=Dokuwiki_URL%E9%87%8D%E5%86%99</id>
	<title>Dokuwiki URL重写 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.doge24190.top/index.php?action=history&amp;feed=atom&amp;title=Dokuwiki_URL%E9%87%8D%E5%86%99"/>
	<link rel="alternate" type="text/html" href="https://wiki.doge24190.top/index.php?title=Dokuwiki_URL%E9%87%8D%E5%86%99&amp;action=history"/>
	<updated>2026-06-11T16:50:13Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.doge24190.top/index.php?title=Dokuwiki_URL%E9%87%8D%E5%86%99&amp;diff=24&amp;oldid=prev</id>
		<title>2026年6月11日 (四) 11:25 Doge24190</title>
		<link rel="alternate" type="text/html" href="https://wiki.doge24190.top/index.php?title=Dokuwiki_URL%E9%87%8D%E5%86%99&amp;diff=24&amp;oldid=prev"/>
		<updated>2026-06-11T11:25:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年6月11日 (四) 19:25的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l252&quot;&gt;第252行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第252行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;完成这两步后，DokuWiki 的 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 重写、媒体文件、Logo 和缩略图都恢复正常。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;完成这两步后，DokuWiki 的 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 重写、媒体文件、Logo 和缩略图都恢复正常。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[分类:技术博客]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[分类:Dokuwiki]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[分类:Nginx]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Doge24190</name></author>
	</entry>
	<entry>
		<id>https://wiki.doge24190.top/index.php?title=Dokuwiki_URL%E9%87%8D%E5%86%99&amp;diff=23&amp;oldid=prev</id>
		<title>Doge24190：​创建页面，内容为“最近我在给自己的 DokuWiki 配置 &lt;abbr&gt;URL&lt;/abbr&gt; 重写，也就是让原本类似：  /doku.php?id=start 这样的地址变成更简洁的：  /start 配置过程中，页面本身很快就能正常访问了，但随后遇到了一个比较隐蔽的问题：&#039;&#039;&#039;上传的媒体文件、网站 Logo 和部分缩略图无法正常显示&#039;&#039;&#039;。  这篇文章记录一下完整排查过程和最终解决方案。 ----  == 一、环境说明 == 我的 DokuWiki…”</title>
		<link rel="alternate" type="text/html" href="https://wiki.doge24190.top/index.php?title=Dokuwiki_URL%E9%87%8D%E5%86%99&amp;diff=23&amp;oldid=prev"/>
		<updated>2026-06-11T11:24:15Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“最近我在给自己的 DokuWiki 配置 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 重写，也就是让原本类似：  /doku.php?id=start 这样的地址变成更简洁的：  /start 配置过程中，页面本身很快就能正常访问了，但随后遇到了一个比较隐蔽的问题：&amp;#039;&amp;#039;&amp;#039;上传的媒体文件、网站 Logo 和部分缩略图无法正常显示&amp;#039;&amp;#039;&amp;#039;。  这篇文章记录一下完整排查过程和最终解决方案。 ----  == 一、环境说明 == 我的 DokuWiki…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;最近我在给自己的 DokuWiki 配置 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 重写，也就是让原本类似：&lt;br /&gt;
 /doku.php?id=start&lt;br /&gt;
这样的地址变成更简洁的：&lt;br /&gt;
 /start&lt;br /&gt;
配置过程中，页面本身很快就能正常访问了，但随后遇到了一个比较隐蔽的问题：&amp;#039;&amp;#039;&amp;#039;上传的媒体文件、网站 Logo 和部分缩略图无法正常显示&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
&lt;br /&gt;
这篇文章记录一下完整排查过程和最终解决方案。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 一、环境说明 ==&lt;br /&gt;
我的 DokuWiki 安装路径为：&lt;br /&gt;
 /www/wwwroot/dokuwiki&lt;br /&gt;
媒体文件实际存放路径为：&lt;br /&gt;
 /www/wwwroot/dokuwiki/data/media&lt;br /&gt;
网站使用：Nginx + PHP + DokuWiki + Cloudflare&lt;br /&gt;
&lt;br /&gt;
DokuWiki 媒体文件并不是直接通过 &amp;lt;code&amp;gt;/data/media/xxx.png&amp;lt;/code&amp;gt; 访问，而是通过 DokuWiki 的 PHP 程序处理，例如：&lt;br /&gt;
 /_media/logo.png&lt;br /&gt;
最终会被重写到：&lt;br /&gt;
 /lib/exe/fetch.php?media=logo.png&lt;br /&gt;
这点非常重要，不能为了让图片能访问就直接开放 &amp;lt;code&amp;gt;/data/media&amp;lt;/code&amp;gt; 目录。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 二、最初的 Nginx 重写规则 ==&lt;br /&gt;
我最初添加了类似下面的规则：&lt;br /&gt;
 location / {&lt;br /&gt;
     try_files $uri $uri/ @dokuwiki;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 location @dokuwiki {&lt;br /&gt;
     rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;&lt;br /&gt;
     rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;&lt;br /&gt;
     rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&amp;amp;id=$2 last;&lt;br /&gt;
     rewrite ^/(.*) /doku.php?id=$1&amp;amp;$args last;&lt;br /&gt;
 }&lt;br /&gt;
页面访问没有问题，但媒体文件无法访问。&lt;br /&gt;
&lt;br /&gt;
后来发现，问题出在 Nginx 的静态资源缓存规则上。&lt;br /&gt;
&lt;br /&gt;
配置里还有这样的规则：&lt;br /&gt;
 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$&lt;br /&gt;
 {&lt;br /&gt;
     expires 30d;&lt;br /&gt;
     error_log /dev/null;&lt;br /&gt;
     access_log /dev/null;&lt;br /&gt;
 }&lt;br /&gt;
而 DokuWiki 的媒体 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 是这样的：&lt;br /&gt;
 /_media/logo.png&lt;br /&gt;
因为它以 &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt; 结尾，所以请求会被上面的图片缓存规则提前匹配，Nginx 会尝试直接寻找：&lt;br /&gt;
 /www/wwwroot/dokuwiki/_media/logo.png&lt;br /&gt;
但实际文件并不在这个位置，而是在：&lt;br /&gt;
 /www/wwwroot/dokuwiki/data/media/logo.png&lt;br /&gt;
因此返回 404。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 三、修复媒体文件无法访问 ==&lt;br /&gt;
解决方法是：&amp;#039;&amp;#039;&amp;#039;给 &amp;lt;code&amp;gt;/_media/&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;/_detail/&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;/_export/&amp;lt;/code&amp;gt; 单独写高优先级 location，并放在静态资源缓存规则之前。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
最终使用的规则如下：&lt;br /&gt;
 location ^~ /_media/ {&lt;br /&gt;
     rewrite ^/_media/(.*)$ /lib/exe/fetch.php?media=$1 last;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 location ^~ /_detail/ {&lt;br /&gt;
     rewrite ^/_detail/(.*)$ /lib/exe/detail.php?media=$1 last;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 location ^~ /_export/ {&lt;br /&gt;
     rewrite ^/_export/([^/]+)/(.*)$ /doku.php?do=export_$1&amp;amp;id=$2 last;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 location / {&lt;br /&gt;
     try_files $uri $uri/ @dokuwiki;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 location @dokuwiki {&lt;br /&gt;
     rewrite ^/(.*) /doku.php?id=$1&amp;amp;$args last;&lt;br /&gt;
 }&lt;br /&gt;
这里使用了：&lt;br /&gt;
 ^~&lt;br /&gt;
表示只要匹配到这个前缀，就不再继续匹配后面的正则 location。&lt;br /&gt;
&lt;br /&gt;
这样 &amp;lt;code&amp;gt;/_media/logo.png&amp;lt;/code&amp;gt; 就不会被图片缓存规则截走，而是会正确交给 DokuWiki 的 &amp;lt;code&amp;gt;fetch.php&amp;lt;/code&amp;gt; 处理。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 四、不要直接开放 data 目录 ==&lt;br /&gt;
DokuWiki 的 &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;conf&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;inc&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;vendor&amp;lt;/code&amp;gt; 等目录不应该被外部直接访问。&lt;br /&gt;
&lt;br /&gt;
可以保留这样的安全规则：&lt;br /&gt;
 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md|data|conf|bin|inc|vendor)&lt;br /&gt;
 {&lt;br /&gt;
     return 404;&lt;br /&gt;
 }&lt;br /&gt;
这样可以防止访问：&lt;br /&gt;
 /data/media/logo.png&lt;br /&gt;
 /conf/local.php&lt;br /&gt;
 /inc/&lt;br /&gt;
媒体文件应通过：&lt;br /&gt;
 /_media/logo.png&lt;br /&gt;
由 DokuWiki 控制输出。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 五、Logo 和缩略图仍然无法显示 ==&lt;br /&gt;
媒体文件可以直接打开后，我又遇到了第二个问题。&lt;br /&gt;
&lt;br /&gt;
页面中的 Logo 和缩略图仍然无法显示，例如：&lt;br /&gt;
 &amp;lt;&amp;#039;&amp;#039;&amp;#039;img&amp;#039;&amp;#039;&amp;#039; id=&amp;quot;dw__logo&amp;quot; src=&amp;quot;/_media/logo.png&amp;quot;&amp;gt;&lt;br /&gt;
以及：&lt;br /&gt;
 &amp;lt;&amp;#039;&amp;#039;&amp;#039;img&amp;#039;&amp;#039;&amp;#039; src=&amp;quot;/_media/capture_2025-11-11_185838.png?w=90&amp;amp;h=90&amp;amp;tok=68fe3f&amp;quot;&amp;gt;&lt;br /&gt;
但奇怪的是，某些带参数的图片又可以访问：&lt;br /&gt;
 /_media/logo.png?t=1706014361&amp;amp;w=64&amp;amp;h=64&amp;amp;tok=e2dbf1&lt;br /&gt;
为了进一步判断问题，我在终端使用 `curl -I` 测试了几个地址：&lt;br /&gt;
 curl -I &amp;quot;&amp;lt;nowiki&amp;gt;https://www.example.com/_media/logo.png&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 curl -I &amp;quot;&amp;lt;nowiki&amp;gt;https://www.example.com/_media/logo.png?t=1706014361&amp;amp;w=64&amp;amp;h=64&amp;amp;tok=e2dbf1&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 curl -I &amp;quot;&amp;lt;nowiki&amp;gt;https://www.example.com/lib/exe/fetch.php?media=logo.png&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 curl -I &amp;quot;&amp;lt;nowiki&amp;gt;https://www.example.com/lib/exe/fetch.php?media=logo.png&amp;amp;t=1706014361&amp;amp;w=64&amp;amp;h=64&amp;amp;tok=e2dbf1&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
结果发现：&lt;br /&gt;
 /_media/logo.png&lt;br /&gt;
返回：&lt;br /&gt;
 HTTP/2 404&lt;br /&gt;
 cf-cache-status: HIT&lt;br /&gt;
而：&lt;br /&gt;
 /lib/exe/fetch.php?media=logo.png&lt;br /&gt;
返回：&lt;br /&gt;
 HTTP/2 200&lt;br /&gt;
 content-type: image/png&lt;br /&gt;
这说明源站和 DokuWiki 本身已经正常，真正的问题是：&amp;#039;&amp;#039;&amp;#039;Cloudflare 缓存了之前的 404 页面。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== 六、最终解决：清理 Cloudflare 缓存 ==&lt;br /&gt;
进入 Cloudflare 后台：&lt;br /&gt;
 缓存 → 配置 → 清除所有内容&lt;br /&gt;
清理后再次测试：&lt;br /&gt;
 curl -I &amp;quot;&amp;lt;nowiki&amp;gt;https://www.example.com/_media/logo.png&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
返回变成：&lt;br /&gt;
 HTTP/2 200&lt;br /&gt;
 content-type: image/png&lt;br /&gt;
此时 Logo 和缩略图也恢复正常。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 七、最终推荐配置片段 ==&lt;br /&gt;
下面是最终比较稳定的 DokuWiki Nginx 伪静态配置片段：&lt;br /&gt;
 &amp;#039;&amp;#039;# 禁止访问敏感文件和目录&amp;#039;&amp;#039;&lt;br /&gt;
 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md|data|conf|bin|inc|vendor)&lt;br /&gt;
 {&lt;br /&gt;
     return 404;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 &amp;#039;&amp;#039;# SSL 证书验证目录&amp;#039;&amp;#039;&lt;br /&gt;
 location ^~ /.well-known/ {&lt;br /&gt;
     allow all;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 &amp;#039;&amp;#039;# DokuWiki 媒体文件&amp;#039;&amp;#039;&lt;br /&gt;
 location ^~ /_media/ {&lt;br /&gt;
     rewrite ^/_media/(.*)$ /lib/exe/fetch.php?media=$1 last;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 location ^~ /_detail/ {&lt;br /&gt;
     rewrite ^/_detail/(.*)$ /lib/exe/detail.php?media=$1 last;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 location ^~ /_export/ {&lt;br /&gt;
     rewrite ^/_export/([^/]+)/(.*)$ /doku.php?do=export_$1&amp;amp;id=$2 last;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 &amp;#039;&amp;#039;# DokuWiki 页面 URL 重写&amp;#039;&amp;#039;&lt;br /&gt;
 location / {&lt;br /&gt;
     try_files $uri $uri/ @dokuwiki;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 location @dokuwiki {&lt;br /&gt;
     rewrite ^/(.*) /doku.php?id=$1&amp;amp;$args last;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 &amp;#039;&amp;#039;# 静态图片缓存&amp;#039;&amp;#039;&lt;br /&gt;
 location ~* \.(gif|jpg|jpeg|png|bmp|swf|webp|svg|ico)$&lt;br /&gt;
 {&lt;br /&gt;
     expires 30d;&lt;br /&gt;
     error_log /dev/null;&lt;br /&gt;
     access_log off;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 &amp;#039;&amp;#039;# JS/CSS 缓存&amp;#039;&amp;#039;&lt;br /&gt;
 location ~* \.(js|css)$&lt;br /&gt;
 {&lt;br /&gt;
     expires 12h;&lt;br /&gt;
     error_log /dev/null;&lt;br /&gt;
     access_log off;&lt;br /&gt;
 }&lt;br /&gt;
修改完成后检查配置并重载 Nginx：&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 八、DokuWiki 后台配置 ==&lt;br /&gt;
DokuWiki 后台还需要开启 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 重写。&lt;br /&gt;
&lt;br /&gt;
进入：管理 → 配置设置 → 高级设置&lt;br /&gt;
&lt;br /&gt;
设置：&lt;br /&gt;
&lt;br /&gt;
使用更整洁的URL&amp;lt;code&amp;gt;userewrite&amp;lt;/code&amp;gt; 为&amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; 启用在 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 中使用斜杠作为命名空间的分隔符&amp;lt;code&amp;gt;useslash&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 九、排查经验总结 ==&lt;br /&gt;
这次问题主要分为三个阶段：&lt;br /&gt;
&lt;br /&gt;
第一，页面 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 重写正常，但媒体文件 404。&lt;br /&gt;
&lt;br /&gt;
原因是 &amp;lt;code&amp;gt;/_media/*.png&amp;lt;/code&amp;gt; 被 Nginx 的图片缓存 location 提前匹配，导致 Nginx 直接去文件系统寻找 &amp;lt;code&amp;gt;/_media/&amp;lt;/code&amp;gt; 目录。&lt;br /&gt;
&lt;br /&gt;
解决方法是给 &amp;lt;code&amp;gt;/_media/&amp;lt;/code&amp;gt; 单独写：&lt;br /&gt;
 location ^~ /_media/&lt;br /&gt;
并放在图片缓存规则之前。&lt;br /&gt;
&lt;br /&gt;
第二，媒体文件直接访问恢复，但 Logo 和缩略图仍然异常。&lt;br /&gt;
&lt;br /&gt;
这时需要用 &amp;lt;code&amp;gt;curl -I&amp;lt;/code&amp;gt; 分别测试：&lt;br /&gt;
 /_media/logo.png&lt;br /&gt;
 /lib/exe/fetch.php?media=logo.png&lt;br /&gt;
如果 &amp;lt;code&amp;gt;fetch.php&amp;lt;/code&amp;gt; 能返回 200，说明 DokuWiki 正常，问题不在 PHP 层。&lt;br /&gt;
&lt;br /&gt;
第三，发现 Cloudflare 返回的是旧的 404 缓存。&lt;br /&gt;
&lt;br /&gt;
判断依据是响应头里出现：&lt;br /&gt;
 cf-cache-status: HIT&lt;br /&gt;
 age: xxxx&lt;br /&gt;
 HTTP/2 404&lt;br /&gt;
说明请求甚至没有回到源站，而是 Cloudflare 直接返回了缓存结果。&lt;br /&gt;
&lt;br /&gt;
最终清理 Cloudflare 缓存后，问题全部解决。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 十、结论 ==&lt;br /&gt;
DokuWiki 配置 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 重写时，媒体文件无法显示并不一定是 DokuWiki 本身的问题，常见原因有：&lt;br /&gt;
 Nginx location 匹配顺序错误&lt;br /&gt;
 静态资源缓存规则截走了 /_media/ 请求&lt;br /&gt;
 Cloudflare 缓存了旧的 404&lt;br /&gt;
 DokuWiki 页面缓存或缩略图缓存未刷新&lt;br /&gt;
排查时不要只看浏览器页面显示效果，最好用：&amp;lt;code&amp;gt;curl -I&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
分别检查：&lt;br /&gt;
 /_media/xxx.png&lt;br /&gt;
 /lib/exe/fetch.php?media=xxx.png&lt;br /&gt;
这样可以快速判断问题到底出在：&lt;br /&gt;
 Nginx 重写&lt;br /&gt;
 DokuWiki PHP 处理&lt;br /&gt;
 Cloudflare 缓存&lt;br /&gt;
 浏览器缓存&lt;br /&gt;
这次最终的关键点在于&lt;br /&gt;
&lt;br /&gt;
# Nginx 使用 ^~ /_media/ 防止媒体请求被静态图片规则截走&lt;br /&gt;
# Cloudflare 清理旧的 404 缓存&lt;br /&gt;
&lt;br /&gt;
完成这两步后，DokuWiki 的 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 重写、媒体文件、Logo 和缩略图都恢复正常。&lt;/div&gt;</summary>
		<author><name>Doge24190</name></author>
	</entry>
</feed>