by
MiB » Sun Apr 10, 2022 1:03 am
@kk, first of all, thanks again, this is to be one of the essential addons to the great CMS and looks also very neat to implement! I however, would like to ask for an advice - there must be something I am missing:
I have composed a very crude testing site - 2 languages (English and Finnish) with just 3 linked pages to see how it works, added the multilang addon, added editable fields as per the documentation and added all sorts of language listing and switches that you are mentioning.
As of now, with pretty URLs on the URL automatically redirects to ".../en/". In the EN version I can browse all three pages and can switch any of them to Finnish (that is to .../fi/endpage"). In the Finnish version, however, if I try to open another page, I am redirected to the target page in English version. In effect, if I can only speak Finnish, I cannot browse the sitein Finnish only.
In the crude menu the links are like this:
- Code: Select all
<a href="<cms:show k_site_link />index.php">home</a>
<a href="<cms:show k_site_link />about-us.php">about us</a>
<a href="<cms:show k_site_link />xxx.php">xxx</a>
Certainly I have tried combinations with
- Code: Select all
<a href="<cms:show k_site_link /><cms:show k_lang />/about-us.php">about us</a>
and
- Code: Select all
<a href="<cms:show k_page_link />about-us.php">about us</a>
From
https://mydomain/folder/fi/ it should give me
https://mydomain/folder/fi/about-us.php (that is what I see when hovering over the link), but if I click it, I always get
Not Found
The requested URL /folder/fi/about-us.php was not found on this server
My htaccess rule (simiar for all three pages) looks like
- Code: Select all
#about-us.php
RewriteRule ^(?:en|fi)/about-us$ "$0/" [R=301,L,QSA]
RewriteRule ^(en|fi)/about-us/$ about-us.php?lc=$1 [L,QSA]
RewriteRule ^(en|fi)/about-us/.*?([^\.\/]*)\.html$ about-us.php?pname=$2&lc=$1 [L,QSA]
RewriteRule ^(en|fi)/about-us/([1-2]\d{3})/(?:(0[1-9]|1[0-2])/(?:(0[1-9]|1[0-9]|2[0-9]|3[0-1])/)?)?$ about-us.php?d=$2$3$4&lc=$1 [L,QSA]
RewriteRule ^(en|fi)/about-us/[^\.]*?([^/\.]*)/$ about-us.php?fname=$2&lc=$1 [L,QSA]
RewriteRule ^(?:en|fi)/about-us/[^\.]*?([^/\.]*)$ "$0/" [R=301,L,QSA]
which looks good to me.
What could I be doing wrong? Is it a problem with RewriteBase then? I have has the same results on localhost, where possible hosting provider`s limitations would not apply. It would be very much appreciated if any of you gentlemen you could point me in some direction...
Edit: clicking that link actually gets me to "https://mydomain/folder/fi/about-us.php" with that "Not Found" message. If I, however, change that URL to "https://mydomain/folder/fi/about-us", the page comes in. So it indeed looks more like a htaccess thing.
Edit2: Forget about it, I am an idiot, obviously. The menu link needs to be like
- Code: Select all
<a href="<cms:show k_site_link /><cms:show k_lang />/about-us/">about us</a>
, works now neatly.
@kk, please feel free to delete this post unless you feel it may be helpful to anybody.