Bug #89648

Updated by Christian Eßl over 2 years ago

Let't take ext:news as an example: 

 - Create a page with the languages "Default" and "German" 
 - Install ext:seo 
 - Install ext:news 
 - Set up a news list page and a news detail page 
 - Translate the news detail page to "German" 
 - Create a news record in the default language. (but don't translate it) 

 Now if you go to the frontend and access the news detail in the default language, the HrefLangGenerator will create a hreflang for the german language.  
 This hreflang url will contain all the get parameters to the news record, although no german translation for this record exists. -> which will trigger a 404 error. 

 To fix this behaviour, the HrefLangGenerator would need to know about the plugin in use. (which is not simple to to do in a generic way). Better option could be an easy solution to extend the HrefLangGenerator with a hook to manipulate the output. custom extension. 

 As another example, we are currently using a custom written HrefLangGenerator here, that reads the site configs RouteEnhancer config, checks if one of the route enhancers is in use, has a PersistedAliasMapper set and acts accordingly. (and works pretty well in a agnostic manner)  
 But our solution would only work, if a route enhancer is configured. Without a routeEnhancer, you can't easily determine for a get parameter, if it is mapped to a database record.