supseven/canonical-files

Extension to add canonical url headers to files

Installs: 330

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 4

Forks: 0

Open Issues: 0

Type:typo3-cms-extension

v2.0.4 2024-04-12 07:27 UTC

This package is auto-updated.

Last update: 2024-04-28 08:47:11 UTC


README

This TYPO3 extension adds canonical url headers to files (images, PDFs...), depending on the file storage the files are located in. Storages can be linked to specific sites (respectively site configurations), so all files located in that storage are delivered with an additional canonical header pointing to the domain of the according site.

Let's say a TYPO3 instance serves two domains, example.at and example.de, wich have two file storages defined respectively, storage-at and storage-de. Then a file provided for download on domain example.at but physically located in storage-de will be delivered with the canonical header https://example.de/fileadmin/....

Installation

Add the package to your composer.json via

composer require supseven/canonical-files

The extension adds the field tx_canonical_files_site_identifier to the table sys_file_storage. Compare database (database migration) if necessary.

Configuration

Add a file storage for each available site configuration (if applicable) and set the field Site in the tab Canonical Files accordingly. All files stored within such a file storage will get the base, respectively base variant, of this site configuration as canonical header.

To make this happen, files have to be routed through TYPO3: Add the following lines to your project's .htaccess file (amend accordingly):

RewriteCond %{REQUEST_URI} ^/fileadmin
RewriteCond %{REQUEST_FILENAME} \.(pdf|doc|docx|xls|xlsx|ppt|pptx)$
RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L]

Optional

It makes sense to prevent editors to upload files directly from file reference fields within backend forms. Add this to your TSconfig to apply it globally:

setup.override {
    edit_docModuleUpload = 0
}
setup.fields.edit_docModuleUpload.disabled = 1

Legal

License

This package is provided under the GPL v3 license. See the file LICENSE or https://www.gnu.org/licenses/gpl-3.0 for details.