Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No redirect works with v4 (new and old, even after Upgrade wizard!) #68

Open
foobar13372 opened this issue Aug 7, 2018 · 13 comments
Open
Assignees
Labels
Milestone

Comments

@foobar13372
Copy link

I executed the upgrade wizard after applying DB changes - all redirects stopped working. Also newly created redirects do not work. I don't get any exception, warning or log. Only a 404 instead of a redirect. So can not really tell what's actually going wrong here.

@bmoex
Copy link
Member

bmoex commented Aug 7, 2018

Hi @foobar13372,

Thanks for you input. Is there any way for me to review your setup? I would love to see your instance to see why this is not working.

Kind regards,

ps. For reverting the upgrade script you can invoke the following command:

UPDATE tx_myredirects_domain_model_redirect SET pid = 0, root_page_domain = '';

@bmoex bmoex added the bug label Aug 7, 2018
@bmoex bmoex self-assigned this Aug 7, 2018
@foobar13372
Copy link
Author

I didn't do this on a live setup, but on a local clone. It's a system of a customer, so I sadly can't give out any details. The TYPO3 8 environment has around 300 domains, and a lot of redirects. 3.4 works perfectly fine, but 4.0 just does not work (silently fails as if it wasn't there at all), whether I do the upgrade script or not.

@bmoex
Copy link
Member

bmoex commented Aug 7, 2018

Does reverting query after the upgrade script fix your version 3.4?
Did found some bugs regarding rootpages with no domains. Will revalidate the workflow to be sure of it.

I haven't released this version on TER yet due to possible bugs. Thanks for your input!

@bmoex
Copy link
Member

bmoex commented Aug 7, 2018

Is it correct that your local clone domain is not available in the sys_domains?

bmoex added a commit that referenced this issue Aug 7, 2018
@bmoex bmoex added this to the 4.0.0 milestone Aug 7, 2018
@bmoex
Copy link
Member

bmoex commented Aug 7, 2018

I updated the pointer for tag 4.0.0. Can you please see if this fixes your problem for 4.0.0.

@foobar13372
Copy link
Author

foobar13372 commented Aug 7, 2018

Thanks, I will test tomorow when I'm back at work.

My local clone domains are in sys_domain. My test system has all live domains in a scheme "actual.live.domain.localhost" (I get this by updating sys_domain, I simply append ".localhost" to all sys_domain.domainName). So, all uids and other domain configs stay exactly the same. This always worked for all relevant extension (even for ext:realurl where I build the configuration by an SQL select on sys_domain) - only for my_redirects v4 it suddenly stopped working.

Maybe the following was fixed already (I'll test tomorow), just wanted to note it:
I also noticed that the upgrade script did not upgrade all redirects properly - or that the select field in the edit mode of a redirect does not have all entries (no sure what of the two would be correct here). The select field in the backend module seems to have the correct value of "pages.uid-sys_domain.uid" for all redirects. So the upgrade script seems to work correctly as far as I can tell - also the page and domain are existing and working, I can visit them correctly in the frontend, but it still shows "value not allowed" for some of the redirects.
I'll test tomorow if it's still the case with the latest version.

@foobar13372
Copy link
Author

Nope, redirects are still silently not working and many redirects have "value not allowed (pid-uid)" in the edit view in the domain drop down, even though I'm on the page where the domain sits in the page tree and am admin.

@bmoex
Copy link
Member

bmoex commented Aug 8, 2018

Hi @foobar13372,

The query of requesting all available domains is:

SELECT * FROM sys_domain WHERE redirectTo = "" ORDER BY sorting;

I think it's very strange for the value not allowed to display. That means that the page (pid) is deleted or that the domain record was already a domain redirect (redirectTo not empty).

Can you verify both cases?

Kind regards,

Benjamin

@foobar13372
Copy link
Author

foobar13372 commented Aug 10, 2018

There's only one single domain that has redirectTo set (and for this domain no my_redirects redirect is configured).
There's not even a single domain where the pages.uid = sys_domain.pid does not exist and also not a single page that is deleted = 1 where a domain is listed.

@foobar13372
Copy link
Author

What is the state on this? We experienced this non-functionality now also on a new/empty single-domain project that started with version 4. Had to revert to 3.4.

@bmoex
Copy link
Member

bmoex commented Dec 11, 2018

I don't have a status update. Due to issues with non-admin editors and rights privileges problems I need to create unit tests to make sure this will be tested and hopefully I can find your problem automatically with this.

However cause I can not recreate your problem, its almost impossible to fix your issue.

Sorry in advance.

@wolfhoel
Copy link

When i delete the try-catch block in the function generateLink (Line 178) in my_redirects\Classes\Service\RedirectService.php the 404 redirect is gone and the redirectTo is working.

As soon as EidUtility::initializeTypoScriptFrontendController(ConfigurationUtility::getDefaultRootPageId($link)); is called in the try block, we are redirected to a 404 site on the calling domain.

Tested on a Windows XAMPP with PHP 7.2.

@bmoex
Copy link
Member

bmoex commented Jan 15, 2019

Hi,
If this is a problem, the rootpage ID is probably not configured correctly or retrieved.
Can you try and configure with the following 'fallback' and try again?;

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['my_redirects'] = [
    // Define default root page
    'defaultRootPageId' => <<YOUR CORRECT ROOT PAGE ID>>,
];

The main problem is that the Core handler of error initialization can do an location header and die(). I don't like using register_shutdown_function due to possible conflicts.

Kind regards,

Benjamin Serfhos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants