Friendly URLs
Apache
Es bedarf einer .htaccess Datei im Website Root um Rewrite Rules zu konfigurieren. Diese ist auch für ein funktionierendes Backend notwendig. Wenn sie nicht vorhanden ist kann sie kopiert werden aus typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/root-htaccess
Rewrites
Um nicht www zu www umzuschreiben:
# Redirect to www
RewriteCond %{HTTP_HOST} ^hostname\.de$ [NC]
RewriteRule ^(.*)$ www.hostname.de/$1 [R=301,L]
Um SSL zu erzwingen:
# Force SSL per Domain
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^www\.hostname\.de$ [NC]
RewriteRule ^(.*)$ www.hostname.de/$1 [R,L]
Um die Umgebung zu setzen - bei Development werden mehr Fehlermeldungen angezeigt:
# Development, Production
SetEnv TYPO3_CONTEXT Development
URL Konfiguration ab TYPO3 Version 9
ab TYPO3 Version 9 gibt es die "Site Configuration" bzw "Seitenverwaltung". Die Konfiguration ist in der Datei typo3conf/sites/rootsystem/config.yaml abgelegt. Man kann diese auch direkt editieren.
routeEnhancers
Interessant sind hier vor allen die routeEnhancers, diese kann man nur direkt in der Datei konfigurieren. Hier einige Beispiele:
Sitemap
Um die Sitemap unter hostname.de/sitemap.xml zu erreichen kann man folgendes konfigurieren:
routeEnhancers:
PageTypeSuffix:
type: PageType
default: ''
map:
/: 0
feed.rss: 9818
sitemap.xml: 1533906435
Trailing slash
um einen abschliessenden Slash an die URLs anzufügen kann man folgendes konfigurieren:
routeEnhancers:
PageTypeSuffix:
type: PageType
default: /
index: ''
map:
/: 0
News
Um die News Detailansicht mit lesbaren URLs zu konfigurieren:
routeEnhancers:
NewsPlugin:
type: Extbase
extension: News
plugin: Pi1
routes:
-
routePath: '/aktuelles/{page}'
_controller: 'News::list'
_arguments:
page: '@widget_0/currentPage'
-
routePath: '/tag/{tag_name}'
_controller: 'News::list'
_arguments:
tag_name: overwriteDemand/tags
-
routePath: '/{news_title}'
_controller: 'News::detail'
_arguments:
news_title: news
-
routePath: '/archiv/{year}/{month}'
_controller: 'News::archive'
defaultController: 'News::list'
defaults:
page: '1'
aspects:
news_title:
type: PersistedAliasMapper
tableName: tx_news_domain_model_news
routeFieldName: path_segment
page:
type: StaticRangeMapper
start: '1'
end: '1000'