How can I do with the new Routing API to make pages accessible through something like https://example.com/page/{idOfThePage}? Normal slug behavior with page title still needs to work.
Thanks
The easiest solution would be to just adapt the page slugs in the page properties. For many pages you can do that in the DB (field pages.slug).
If you want new pages and the slug autogeneration in the backend to follow that, too you can overwrite EXT:cores pages TCA in your TCA/Overrides/pages.php (docs TCA type slug).
I suggest (not tested):
$GLOBALS['TCA']['pages']['columns']['slug']['config']['generatorOptions']['fields'] = ['uid'];
$GLOBALS['TCA']['pages']['columns']['slug']['config']['generatorOptions']['prefixParentPageSlug'] = false;
I have no idea how to get the base /page in there. You could set your site's base path to /page in site config maybe? Or you might need a generatorOptions[postModifier].
Notice:
A routeEnhancer might come to mind first for rewriting URLs. And yes, for other simple parameters a SimpleEnhancer is able to do that - yet for the base path/pageUid it is not.
Related
In the past we organized pages inside the page-tree by putting them into pages like "meta" or "submenu". These pages had the option "exclude from speaking url" so their name was not rendered to the url.
Is there any option to do this in TYPO3 9.5 to ignore pages from generating the "slug"?
as example:
WRONG: https: //www.somedomain.tld/metamenu/terms-and-conditions/
RIGHT: https: //www.somedomain. tld/terms-and-conditions/
How to "ignore" the page "metamenu" for automatic-generating the slug?
Best regards
Johannes
It is mandatory for a page to have set a slug and every menulevel will generate another url part. It is not possible to exclude a page - think about how to access this page via url
Here Mathias Schreiber tells a bit about this feature: Feature Demo - Speaking URLs Part 1
The TYPO3 extension "masi" provides this feature, including an upgrade wizard that migrates the realurl tx_realurl_exclude settings.
Have you tried using a Folder instead of a "Page"?
page/page/page
somedomain.tld/metamenu/terms-and-conditions/
page/folder/page
somedomain.tld/terms-and-conditions/
You can leave the parent-page as it is and edit your child-pages. There you can delete parts of the urls in the slug-field.
There's a feature in RealURL for TYPO3 8.7 "Exclude from speaking URL". If set 'domain.com/page-one/' loads 'page-one' and 'domain.com/subpage-of-page-one/' loads 'subpage-of-page-one' with no need of 'page-one' in the URL.
The very same thing can be achieved in TYPO3 9.5 manually editing slugs but you can't set the parent page to be excluded from the URL automatically.
It's a missing feature.
I had the same Problem. Sadly there is no "good" solution as far as i know. But there is a little trick. You can fix this in the database. I deleted all my "slug"-entries in in the database for my pages. Then i wrote in all pages wich should not show in the url in slug "/". This does sadly not work in TYPO3, because the BE allows just one "/" and the second "/" will be changed to "/1". But in the Database you can do it. After you edited the slug for your page metamenu and other to "/", you can go into the upgrade-wizard in the installtools, reset the "generate slugs" task and run this task again. This is sadly the only solution i came up with.
I use TYPO3 8.7 and NEWS extension 6.3 and shariff-sharing.
When i share a news record on Facebook the publication goes well, but when i tried to go back to news record i get 404 error. I think the problem is a query parameter called attach to outbound links by Facebook and appearing in the news record URL. Something like http://example.com/newstitle/?fbclid=IwAR2QIndkh'. What i must do to correct this?
Any help would be appreciated.
As #Wolffc already noted, you need to add the parameter to TYPO3's cHash excluded parameters.
If you use realurl, you also need to tell realurl about it. The current master contains a change for that https://github.com/dmitryd/typo3-realurl/commit/2f1dfced4a2f64656f4091ab79ab307ff6daa469 - that makes realurl reconfigure TYPO3 to include the parameter.
Until it gets released, I suggested a common configuration that I use my realurl configuration (let realurl use the TYPO3 conf) here:
https://github.com/dmitryd/typo3-realurl/pull/650
You need ro add fbclid to the chash ignored parameters in the install tool
it is possible to have a direct path to a special news entry?
example:
my link is: http://www.domain.de/start/topnewsdetail/news/really-long-name-of-news-entry.html
and it would be nice to have
http://www.domain.de/newsEntry.html.
Can someone give a hint?
it is a little bit complicated if you want a general automatic solution.
you can do it by hand if you insert pages of type 'external url' where you insert the long path as external url.
with realurl you have problems as realurl at least will use one path segment for the page with the detail view before the last segment which is for identifying the news record. AFAIK coolurl can ommit the path segemnt for the page.
on the other hand: make sure the news identification (title, subtitle?) is unique and does not collide with pathes for normal pages.
at last you can use .htaccess rewrites, but that needs to differentiate between short urls for news and short urls for top-level pages. So those urls will show the page, those urls are not generated inside of TYPO3 and so nowhere used (except manual)
this EXT. adds a custom link to records like system category or news:
https://typo3.org/extensions/repository/view/recordlink
It'S deployed for TYPO3 6.2 but perhabs it'S helpful to create an own EXT.?
On a corporate website managed with TYPO3 there are shortcuts defined which lead to a page on the site.
Example:
Corporate website is www.acompany.com
Then there is a site www.acompany.com/coolproduct which is redirecting the user to www.acompany.com/products/productgroup3/product25.htm for example.
Where in TYPO3 can such "shortcut" links be defined?
Most probably some page in the page tree has set type to: Shortcut which causes that it points some other page or resource, it's also possible that is set as Link to External URL and there is full URL given.
Check the page tree in the backend and find your coolproduct page in it. Then check the site's properties and change if required to other value/type.
It's also possible that this URL is generated by some plugin or TypoScript, but in this case you'll need to investigate it yourself.
Simplest way to find these kinds of things is actually using the search engine in the TYPO3 backend. You will find it in the upper right corner.
If this fails, what I do is install PhpMyAdmin from the extension repository. Once you have PhpMyAdmin you can use it's search functionality to find anything in the database using a search query of: '%coolproduct%' and selecting all tables. In the results look for the 'pid' field. It tells you on which page in TYPO3 the found item is located.
Does the page use the extension realURL? If so, there might be realURL redirects defined.
Have a look at page -> info -> RealUrl -> Redirects
Maybe you the user has defined this link redirection in many pages, you can search for it in the database exactly in the tt_content table.
You can set shortcut for your domain to any page of your site, so when user enter only your domain name in url then it redirects to page which you set in shortcut.
For that edit your domain and set shortcut to any page of your page tree.
I'm not really sure what is the best way to do this. Say you have set up a page like so:
www.myblog.com/page1
Is it possible to, specify that the request to any of the subpages under page1 be redirected to a single page? Say if I had page1.php as one of my pages, any URL that is prefixed with:
www.myblog.com/page1/...
wordpress would use that file to generate the page.
Basically, I have some custom content that I want fetched with php, and it depends on which subpage is being loaded. The format of the custom content is always the same, only the 'arguments' differ. Is there a way to do this within Wordpress? And if not, where should I should I start looking to implement this?
Thanks
try modifying .htaccess file and rewriting url so all requests for /page1/page2 will be rewrite to /page1=?page=page2 or something like that