Bug #86596
closedSlash in Page Title still in URL
0%
Description
If the page title contains a slash like in "Sanitär / Installation" the generated url looks like "/sanitaer-/-installation".
The slash should not appear in the URL, cause its a directory seperator sign, so from an seo perspective the request is treated wrong.
Updated by Josef Glatz about 6 years ago
Thanks for your issue!¶
Just by reading the ChangeLog RsT document of the new feature this seems to be intended by the core team.
...
In contrast to concepts within RealURL of "URL segments", a slug is a segment of a URL, but it is not limited to be separated by slashes. Therefore, a slug can contain slashes.
...
IMO from an SEO guru / backend Editor / and even a backend editor who came into contact with Realurl with TYPO3 < v9 before¶
It may make sense to make the Replace Character Map configurable in \TYPO3\CMS\Core\DataHandling\SlugHelper
maybe. Especially if other languages are used where there some other characters needs to be replaced by the fallbackCharactar
. I think there will be situations, where TYPO3 must provide some configuration options to facilitate the work of the backend editor in creating slugs.
As a workaround you can manually adopt the slug field content to your needs¶
Since I'm not familiar with the Insights of the new feature, we can only wait for an answer from the Core Team¶
Updated by Kalle Karlson about 6 years ago
Thank you for your answer, but I think it's wrong to refer only on realurl behavior. The slash is a reserved character like mentioned in RFC1738 (http://www.ietf.org/rfc/rfc1738.txt )
An HTTP URL takes the form: http://<host>:<port>/<path>?<searchpart> [...] Within the <path> and <searchpart> components, "/", ";", "?" are reserved. The "/" character may be used within HTTP to designate a hierarchical structure.
So imho the slash has to be removed or encoded.
Updated by Georg Ringer about 6 years ago
but the code doesn't know if you would like to have a heirachical structure like sanitär/installation
or if it should be -
used.
or do you see a way?
Updated by Georg Ringer about 6 years ago
- Status changed from New to Needs Feedback
Updated by Kalle Karlson about 6 years ago
The Pagetitle is always the last part of the heirachical structure. If I want different "folders" I should organize my content with parent pages so that "Sanitär" and "Installation" are two different pages. The URL should respect the backend tree structure. The default case should be that the slash is stripped from URL on auto generate, if I want a slash at this position I can add it manually.
Updated by Georg Ringer about 6 years ago
I understand what you write and still the question: technically it is not possible to know if an editor wants to have the slash from the beginning on because he wants it that way or if it should be stripped.
Updated by Kalle Karlson about 6 years ago
Typo3 should respect the standard in the default case and the standard said that a slash is for hierarchical structure.
Updated by Sebastian Rosskopf about 6 years ago
In my opinion there will be various cases in the future where a slash in a page or record title will be problematic in generating the URL path segments.
Especially when having data records with own path segments, a slash in the record's title will be causing problems.
Let's say my record's title is "Working student / Internship", my URL will look like
my-domain/job-offers/job/working-student-/-internship
which doesn't resolve to valid page structure and doesn't make any sense. There should be options to maybe configure in TCA which characters to be excluded/replaced from speaking URL paths.
Updated by Peter Kraume about 6 years ago
I'd also vote for removing the slash or making it at least configurable.
If I as an editor want to have a hierarchical structure, I nest my pages accordingly. Everything else would only lead to confusion.
Updated by Peter Kraume about 6 years ago
- Related to Bug #86740: Using slash in slug in extension record throws exception in frontend added
Updated by Peter Kraume almost 6 years ago
I think this one is solved via #86740.
Updated by Riccardo De Contardi almost 6 years ago
- Status changed from Needs Feedback to Closed
- Target version deleted (
next-patchlevel)
As Peter Kraume pointed out, https://forge.typo3.org/issues/86740 (https://review.typo3.org/58851) added the possibility to set up replacements in the slug configuration; available since TYPO3 9.5.2
Documentation: https://docs.typo3.org/typo3cms/extensions/core/Changelog/9.5.x/Feature-86740-AllowRemovalOfSlashInSlug.html
I close this one, please let me know if this is the wrong decision.
Updated by Sven Juergens over 5 years ago
sorry, I open this bug again. The solution refers to self-written extensions, but how does this relate to the TYPO3 pages? How do I solve this problem for normal pages?
in current TCA für pages -> slug is not an option for that, rigth?
'slug' => [
'exclude' => true,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.slug',
'displayCond' => 'USER:' . \TYPO3\CMS\Core\Compatibility\PseudoSiteTcaDisplayCondition::class . '->isInPseudoSite:pages:false',
'config' => [
'type' => 'slug',
'size' => 50,
'generatorOptions' => [
'fields' => ['title'],
'fieldSeparator' => '/',
'prefixParentPageSlug' => true
],
'fallbackCharacter' => '-',
'eval' => 'uniqueInSite',
'default' => ''
]
],
Updated by Daniel Reichel over 5 years ago
- Related to Bug #88291: Exception thrown if slash in route field of PersistedPatternMapper aspect added
Updated by Stephan Boiting almost 5 years ago
That´s my solution for pages im TCA:
$GLOBALS['TCA']['pages']['columns']['slug']['config']['generatorOptions']['replacements'] = ['/' => '-'];