我使用sitesucker(Mac工具)将Drupal网站转换为静态网站。我在本地运行 MAMP 6。有些图像丢失,可能是由于编码问题。
例如,我有这个文件:
Akzeptanz_GoA3+_Vorschaubild_Symbolbild_pexels-jéshoots-253647.jpg
无论是本地还是现场,它都完全像这样嵌入:
<img src="/path/Akzeptanz_GoA3+_Vorschaubild_Symbolbild_pexels-je%CC%81shoots-253647.jpg">
本地图像有效,Live it is 404。这种不同行为的原因和可能的解决方案是什么? Live 是一个常规的 LAMP 堆栈。
当我清空两个 htaccess 文件时会出现此行为。
“修复”HTML 源中的 URL 编码将是首选解决方案,如评论中所述(从
e%CC%81
到 %C3%A9
)。但是,如果这不是一个选项,那么您也许可以在 .htaccess
中进行搜索/替换。
例如,靠近根
.htaccess
文件的顶部:
# Replace "e%CC%81" with "%C3%A9"
RewriteCond %{THE_REQUEST} ^GET\s/(.*)e%CC%81([^\s]*)
RewriteRule ^path/ %1\%C3\%A9%2 [NE,L]
在
/path/
模式(如上所述)中包含
RewriteRule
,以限制测试的 URL 数量。
我们将前面的条件中请求的URL与
THE_REQUEST
服务器变量进行匹配(并捕获),该变量保留实际请求的URL编码的URL。
substitution字符串中的文字
%
应进行反斜杠转义,以避免可能被解释为反向引用(尽管由于它们后面没有数字,所以应该没问题)。