这是我的.htaccess
文件在头部
<FilesMatch "\.pdf$">
RewriteRule ([^/]+)\.pdf $ - [E=FILENAME:$1]
<If "%{REQUEST_URI} =~ m#^/wp-content/themes/my_theme/pdf/fr/.*#">
Header add Link '<https://www.example.com/wp-content/my_theme/theme_SES/pdf/fr/%{FILENAME}e>; rel="canonical"'
</If>
</FilesMatch>
我在error.log
中收到以下错误:
RewriteRule: bad flag delimiters
.htaccess
文件有什么问题?
1条答案
按热度按时间dgenwo3n1#
在
$
之前有一个错误的 * 空格 *。因此-
被视为 flags(第三个)参数,因此出现错误。应该这样写:
虽然重写规则在语法上允许出现在
<Location>
和<Files>
节(包括其正则表达式对应部分)中,但这绝不是必需的,也不受支持。在这些上下文中可能会中断的功能是相对替换。例如,您的代码块可以更简单地重写为:
这也许可以进一步简化了解您的实际URL结构。
并且,根据您的其他指令,您可能需要将
Header
指令中的FILENAME
更改为REDIRECT_FILENAME
。(取决于重写引擎是否有循环-如果使用标准WordPress指令,通常会有。)请注意,
Header
指令上添加了env=FILENAME
参数,它根据是否设置了FILENAME
env var来有条件地设置此头文件。