。。。但这仍然没有删除扩展。
要清楚,应该已经在HTML锚定/链接中删除了扩展名。目的.htaccess
主要是将无扩展URL重写回底层文件系统路径(其中包含文件扩展名)。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\\.]+)$ $1.php [NC,L]
除了重写到
.php
, 不
.html
(如上所述),这太笼统了。您似乎只有1个需要重写的URL,但这会重写所有不包含点的内容,其中可能还包括您的所有WordPress URL!
如果请求的URL以尾部斜杠结尾,这也会失败,如您的示例所示。
有点旁白,但是。。。无论如何,前面的条件(检查请求是否映射到文件)在这里很可能是不必要的,因为您只匹配不包含点(即不包含文件扩展名)的请求-没有“文件扩展名”的URL不太可能直接映射到文件系统上的文件。(这意味着您的文件没有文件扩展名,这通常是个坏主意。)
因此,如果您已经链接到https://example.com/apple-app-site-association/
(如前所述,后面有斜杠),然后在WordPress前端控制器之前添加以下内容:
Options -MultiViews
# Rewrite "/url/" to "/url.html"
RewriteRule ^(apple-app-site-association)/$ $1.html [L]
# BEGIN WordPress
:
The
$1
反向引用只是为了避免重复。
无需重复RewriteEngine
指令(因为这已经包含在下面的WordPress块中-顺序无关紧要)。包括Options
指示禁用多视图(如果尚未禁用)。
<小时>UPDATE: 如果文件真的是如您所说的“纯文本”(并且“上面不能有任何HTML”),那么为什么不使用.txt
扩展而不是.html
? 通过使用.html
, Apache将发送mime类型text/html
, 而不是text/plain
(与a一样.txt
扩展),这似乎是理想的结果?浏览器还设置格式text/plain
默认情况下,使用等距字体的文档会有所不同。