如何在 Typo3 v8 上使用子域设置自己的 CDN?
How to set up own CDN with subdomain on Typo3 v8?
由于 Typo3 v8 不支持 Content Replacer (ja_replacer) 是否有任何其他方法可以替换 Typo3 v8 中的 url 字符串并设置自己的 CDN 服务?
为了更清楚,在 Typo3 v4.5-6.1 中它看起来像这样:
config.tx_ja_replacer {
search {
1="typo3temp/
2="fileadmin/
3="typo3conf/
}
replace {
1="https://cdn.domain.de/typo3temp/
2="https://cdn.domain.de/fileadmin/
3="https://cdn.domain.de/typo3conf/
}
}
但此扩展程序不再受支持。
提前致谢!
---- 编辑 1 ----
如果有人仍然对 'ja_replacer' 感兴趣,这是一个 Typo3 v7 & v8 分支:
ja_replace for Typo3 v7-8
有了这个我设法让它工作但遇到了 CORS 问题,即使字体设置为通配符来源
---- 编辑 2 ----
对此进行了测试(Mario Naether),但这也没有用(即使使用 page.stdWrap.replacement)
page.stdWrap.replacement {
10.search = #"fileadmin\/#
10.replace = "https://cdn.domain.de/fileadmin/
10.useRegExp = 1
11.search = #"typo3temp\/#
11.replace = "https://cdn.domain.de/typo3temp/
11.useRegExp = 1
12.search = #"typo3conf\/#
12.replace = "https://cdn.domain.de/typo3conf/
12.useRegExp = 1
}
---- 编辑 3 ----
终于找到了让我满意的解决方案。 (如果我已登录)
我把它贴在这里作为答案。
这确实有效..但如果我没有登录则无效...
所以现在我必须管理它才能工作,即使我在没有登录的情况下加载网站也是如此。
TYPO3 扩展 replacecontent 来自 Michiel Roos,MaxServ 具有几乎相同的功能。 https://extensions.typo3.org/extension/replacecontent/
当前版本仍然只与 TYPO3 7.6 兼容,但可以很容易地使其与 TYPO3 8 兼容,同时分叉 github https://github.com/MaxServ/t3ext-replacecontent 并改进现有代码。
您可以使用 TYPO3 中的 stdWrap 函数。这适用于所有 TYPO3 版本 >= 6.2.
page.stdWrap.replacement {
10.search = #"fileadmin\/_processed_\/#
10.replace = "https://cdn.mydoamin.de/fileadmin/_processed_/
10.useRegExp = 1
}
经过几天的研究,我发现了一个很好的解决方案,它适用于 Typo3 v7.6.0 - v8.99.99
安装ja-replacer(通过 PHORAX)
并将此代码添加到您的 TypoScript
#CDN über Sub-Domain 'CDN.DOMAIN.de'
config.tx_ja_replacer{
search {
10="/typo3temp/
11="typo3temp/
12="/fileadmin/
13="fileadmin/
14="/typo3conf/
15="typo3conf/
}
replace {
10="https://CDN.DOMAIN.de/typo3temp/
11="https://CDN.DOMAIN.de/typo3temp/
12="https://CDN.DOMAIN.de/fileadmin/
13="https://CDN.DOMAIN.de/fileadmin/
14="https://CDN.DOMAIN.de/typo3conf/
15="https://CDN.DOMAIN.de/typo3conf/
}
}
#Domain-replace Setup für CDN
[globalString = ENV:HTTP_HOST = WWW.DOMAIN.de]
page.config.baseURL = https://WWW.DOMAIN.de/
config.tx_ja_replacer.replace < tx_ja_replacer
[global]
1.) 现在将每个“cdn.domain.de”替换为您自己的 CDN 子域或 CDN 域
2.) 将每个“www.domain.de”替换为您的域。
2b) 如有必要,如果您不使用 https
,则将“page.config.baseURL”的值更改为 http 而不是 https
---- 编辑 1 ----
不知何故,只要我登录就可以正常工作。
当我在没有登录的情况下加载我的 Typo3 网站时,它不会替换任何东西。
由于 Typo3 v8 不支持 Content Replacer (ja_replacer) 是否有任何其他方法可以替换 Typo3 v8 中的 url 字符串并设置自己的 CDN 服务?
为了更清楚,在 Typo3 v4.5-6.1 中它看起来像这样:
config.tx_ja_replacer {
search {
1="typo3temp/
2="fileadmin/
3="typo3conf/
}
replace {
1="https://cdn.domain.de/typo3temp/
2="https://cdn.domain.de/fileadmin/
3="https://cdn.domain.de/typo3conf/
}
}
但此扩展程序不再受支持。
提前致谢!
---- 编辑 1 ----
如果有人仍然对 'ja_replacer' 感兴趣,这是一个 Typo3 v7 & v8 分支: ja_replace for Typo3 v7-8
有了这个我设法让它工作但遇到了 CORS 问题,即使字体设置为通配符来源
---- 编辑 2 ----
对此进行了测试(Mario Naether),但这也没有用(即使使用 page.stdWrap.replacement)
page.stdWrap.replacement {
10.search = #"fileadmin\/#
10.replace = "https://cdn.domain.de/fileadmin/
10.useRegExp = 1
11.search = #"typo3temp\/#
11.replace = "https://cdn.domain.de/typo3temp/
11.useRegExp = 1
12.search = #"typo3conf\/#
12.replace = "https://cdn.domain.de/typo3conf/
12.useRegExp = 1
}
---- 编辑 3 ----
终于找到了让我满意的解决方案。 (如果我已登录) 我把它贴在这里作为答案。
这确实有效..但如果我没有登录则无效... 所以现在我必须管理它才能工作,即使我在没有登录的情况下加载网站也是如此。
TYPO3 扩展 replacecontent 来自 Michiel Roos,MaxServ 具有几乎相同的功能。 https://extensions.typo3.org/extension/replacecontent/ 当前版本仍然只与 TYPO3 7.6 兼容,但可以很容易地使其与 TYPO3 8 兼容,同时分叉 github https://github.com/MaxServ/t3ext-replacecontent 并改进现有代码。
您可以使用 TYPO3 中的 stdWrap 函数。这适用于所有 TYPO3 版本 >= 6.2.
page.stdWrap.replacement {
10.search = #"fileadmin\/_processed_\/#
10.replace = "https://cdn.mydoamin.de/fileadmin/_processed_/
10.useRegExp = 1
}
经过几天的研究,我发现了一个很好的解决方案,它适用于 Typo3 v7.6.0 - v8.99.99
安装ja-replacer(通过 PHORAX)
并将此代码添加到您的 TypoScript
#CDN über Sub-Domain 'CDN.DOMAIN.de'
config.tx_ja_replacer{
search {
10="/typo3temp/
11="typo3temp/
12="/fileadmin/
13="fileadmin/
14="/typo3conf/
15="typo3conf/
}
replace {
10="https://CDN.DOMAIN.de/typo3temp/
11="https://CDN.DOMAIN.de/typo3temp/
12="https://CDN.DOMAIN.de/fileadmin/
13="https://CDN.DOMAIN.de/fileadmin/
14="https://CDN.DOMAIN.de/typo3conf/
15="https://CDN.DOMAIN.de/typo3conf/
}
}
#Domain-replace Setup für CDN
[globalString = ENV:HTTP_HOST = WWW.DOMAIN.de]
page.config.baseURL = https://WWW.DOMAIN.de/
config.tx_ja_replacer.replace < tx_ja_replacer
[global]
1.) 现在将每个“cdn.domain.de”替换为您自己的 CDN 子域或 CDN 域
2.) 将每个“www.domain.de”替换为您的域。
2b) 如有必要,如果您不使用 https
,则将“page.config.baseURL”的值更改为 http 而不是 https---- 编辑 1 ----
不知何故,只要我登录就可以正常工作。 当我在没有登录的情况下加载我的 Typo3 网站时,它不会替换任何东西。