Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-24107

ezUrlAlias redirection in multilingual site returns "Module not found"

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: High High
    • Resolution: Duplicate
    • Affects Version/s: 4.7.0
    • Fix Version/s: Customer request
    • Component/s: Language
    • Labels:
      None
    • Environment:

      eZ Publish 4.7

      Description

      According to the UrlAlias redirection mechanism, when an object is updated to change its title, the old URL is automatically redirected to the new one. This mechanism is handled by the 'ezurlalias_ml' table. But in a multilingual website, when there is an object with the same name in multiple languages (say, English and French), and that object is updated on one language, this behavior is broken. When you try to request the old URL, you get a "Module not found" page (error kernel 20) error, instead of being redirected to the new URL.

      Steps to reproduce:

      1. Prepare an eZ Publish 4.7 installation, fully patched, in multiple languages (in this case, eng-GB (main), nor-NO and por-PT);
      2. Set eng-GB frontend siteaccess only in English:

      --- settings/siteaccesss/eng/site.ini.append.php
      [RegionalSettings]
      Locale=eng-GB
      ContentObjectLocale=eng-GB
      ShowUntranslatedObjects=disabled
      SiteLanguageList[]
      SiteLanguageList[]=eng-GB
      ---
      

      3. Create a new article called "13192 Test Article" in eng-GB and por-PT:

      mysql> SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
      +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
      | action     | action_type | alias_redirects | id  | is_alias | is_original | lang_mask | link | parent | text               | text_md5                         |
      +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
      | eznode:129 | eznode      |               1 | 142 |        0 |           1 |        10 |  142 |     85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
      +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
      1 row in set (0.00 sec)
      

      4. Update the eng-GB version, and change the title to '13192 Test Article Updated':

      SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
      +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
      | action     | action_type | alias_redirects | id  | is_alias | is_original | lang_mask | link | parent | text                       | text_md5                         |
      +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
      | eznode:129 | eznode      |               1 | 142 |        0 |           1 |         8 |  142 |     85 | 13192-Test-Article         | 7a0a1c289ca8be844c040ec4dfc9e28a |
      | eznode:129 | eznode      |               1 | 142 |        0 |           1 |         2 |  142 |     85 | 13192-Test-Article-Updated | 9c5e54acb8dfdbc82609cccff0c57605 |
      +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
      2 rows in set (0.00 sec)
      

      5. Try to request the "13192-Test-Article" URL in the English siteaccess: a "Module not found" page (error kernel 20) error is displayed, instead of re-directing to "13192-Test-Article-Updated".

        Issue Links

          Activity

          Nuno Oliveira (Inactive) created issue -
          Nuno Oliveira (Inactive) made changes -
          Field Original Value New Value
          Description According to the UrlAlias redirection mechanism, when an object is updated to change its title, the old URL is automatically redirected to the new one. This mechanism is handled by the 'ezurlalias_ml' table. But in a multilingual website, when there is an object with the same name in multiple languages (say, English and French), and that object is updated on one language, this behavior is broken. When you try to request the old URL, you get a "Module not found" page (error kernel 20) error, instead of being redirected to the new URL.

          h4. Steps to reproduce:

          1. Prepare an eZ Publish 4.7 installation, fully patched, in multiple languages (in this case, eng-GB (main), nor-NO and por-PT);
          2. Set eng-GB frontend siteaccess only in English:

          {noformat}
          --- settings/siteaccesss/en/site.ini.append.php
          [RegionalSettings]
          Locale=eng-GB
          ContentObjectLocale=eng-GB
          ShowUntranslatedObjects=disabled
          SiteLanguageList[]
          SiteLanguageList[]=eng-GB
          ---
          {noformat}

          3. Create a new article called "13192 Test Article" in eng-GB and por-PT:

          {noformat}
          mysql> SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          | action | action_type | alias_redirects | id | is_alias | is_original | lang_mask | link | parent | text | text_md5 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 10 | 142 | 85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          1 row in set (0.00 sec)
          {noformat}

          4. Update the eng-GB version, and changed the title to '13192 Test Article Updated':

          {noformat}
          SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          | action | action_type | alias_redirects | id | is_alias | is_original | lang_mask | link | parent | text | text_md5 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 8 | 142 | 85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 2 | 142 | 85 | 13192-Test-Article-Updated | 9c5e54acb8dfdbc82609cccff0c57605 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          2 rows in set (0.00 sec)
          {noformat}

          5. Try to request the "/13192-Test-Article" URL in the English siteaccess: a "Module not found" page (error kernel 20) error is displayed, instead of re-directing to "13192-Test-Article-Updated".
          According to the UrlAlias redirection mechanism, when an object is updated to change its title, the old URL is automatically redirected to the new one. This mechanism is handled by the 'ezurlalias_ml' table. But in a multilingual website, when there is an object with the same name in multiple languages (say, English and French), and that object is updated on one language, this behavior is broken. When you try to request the old URL, you get a "Module not found" page (error kernel 20) error, instead of being redirected to the new URL.

          h4. Steps to reproduce:

          1. Prepare an eZ Publish 4.7 installation, fully patched, in multiple languages (in this case, eng-GB (main), nor-NO and por-PT);
          2. Set eng-GB frontend siteaccess only in English:

          {noformat}
          --- settings/siteaccesss/eng/site.ini.append.php
          [RegionalSettings]
          Locale=eng-GB
          ContentObjectLocale=eng-GB
          ShowUntranslatedObjects=disabled
          SiteLanguageList[]
          SiteLanguageList[]=eng-GB
          ---
          {noformat}

          3. Create a new article called "13192 Test Article" in eng-GB and por-PT:

          {noformat}
          mysql> SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          | action | action_type | alias_redirects | id | is_alias | is_original | lang_mask | link | parent | text | text_md5 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 10 | 142 | 85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          1 row in set (0.00 sec)
          {noformat}

          4. Update the eng-GB version, and changed the title to '13192 Test Article Updated':

          {noformat}
          SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          | action | action_type | alias_redirects | id | is_alias | is_original | lang_mask | link | parent | text | text_md5 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 8 | 142 | 85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 2 | 142 | 85 | 13192-Test-Article-Updated | 9c5e54acb8dfdbc82609cccff0c57605 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          2 rows in set (0.00 sec)
          {noformat}

          5. Try to request the "/13192-Test-Article" URL in the English siteaccess: a "Module not found" page (error kernel 20) error is displayed, instead of re-directing to "13192-Test-Article-Updated".
          Nuno Oliveira (Inactive) made changes -
          Description According to the UrlAlias redirection mechanism, when an object is updated to change its title, the old URL is automatically redirected to the new one. This mechanism is handled by the 'ezurlalias_ml' table. But in a multilingual website, when there is an object with the same name in multiple languages (say, English and French), and that object is updated on one language, this behavior is broken. When you try to request the old URL, you get a "Module not found" page (error kernel 20) error, instead of being redirected to the new URL.

          h4. Steps to reproduce:

          1. Prepare an eZ Publish 4.7 installation, fully patched, in multiple languages (in this case, eng-GB (main), nor-NO and por-PT);
          2. Set eng-GB frontend siteaccess only in English:

          {noformat}
          --- settings/siteaccesss/eng/site.ini.append.php
          [RegionalSettings]
          Locale=eng-GB
          ContentObjectLocale=eng-GB
          ShowUntranslatedObjects=disabled
          SiteLanguageList[]
          SiteLanguageList[]=eng-GB
          ---
          {noformat}

          3. Create a new article called "13192 Test Article" in eng-GB and por-PT:

          {noformat}
          mysql> SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          | action | action_type | alias_redirects | id | is_alias | is_original | lang_mask | link | parent | text | text_md5 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 10 | 142 | 85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          1 row in set (0.00 sec)
          {noformat}

          4. Update the eng-GB version, and changed the title to '13192 Test Article Updated':

          {noformat}
          SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          | action | action_type | alias_redirects | id | is_alias | is_original | lang_mask | link | parent | text | text_md5 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 8 | 142 | 85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 2 | 142 | 85 | 13192-Test-Article-Updated | 9c5e54acb8dfdbc82609cccff0c57605 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          2 rows in set (0.00 sec)
          {noformat}

          5. Try to request the "/13192-Test-Article" URL in the English siteaccess: a "Module not found" page (error kernel 20) error is displayed, instead of re-directing to "13192-Test-Article-Updated".
          According to the UrlAlias redirection mechanism, when an object is updated to change its title, the old URL is automatically redirected to the new one. This mechanism is handled by the 'ezurlalias_ml' table. But in a multilingual website, when there is an object with the same name in multiple languages (say, English and French), and that object is updated on one language, this behavior is broken. When you try to request the old URL, you get a "Module not found" page (error kernel 20) error, instead of being redirected to the new URL.

          h4. Steps to reproduce:

          1. Prepare an eZ Publish 4.7 installation, fully patched, in multiple languages (in this case, eng-GB (main), nor-NO and por-PT);
          2. Set eng-GB frontend siteaccess only in English:

          {noformat}
          --- settings/siteaccesss/eng/site.ini.append.php
          [RegionalSettings]
          Locale=eng-GB
          ContentObjectLocale=eng-GB
          ShowUntranslatedObjects=disabled
          SiteLanguageList[]
          SiteLanguageList[]=eng-GB
          ---
          {noformat}

          3. Create a new article called "13192 Test Article" in eng-GB and por-PT:

          {noformat}
          mysql> SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          | action | action_type | alias_redirects | id | is_alias | is_original | lang_mask | link | parent | text | text_md5 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 10 | 142 | 85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+--------------------+----------------------------------+
          1 row in set (0.00 sec)
          {noformat}

          4. Update the eng-GB version, and change the title to '13192 Test Article Updated':

          {noformat}
          SELECT * FROM ezurlalias_ml WHERE action='eznode:129';
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          | action | action_type | alias_redirects | id | is_alias | is_original | lang_mask | link | parent | text | text_md5 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 8 | 142 | 85 | 13192-Test-Article | 7a0a1c289ca8be844c040ec4dfc9e28a |
          | eznode:129 | eznode | 1 | 142 | 0 | 1 | 2 | 142 | 85 | 13192-Test-Article-Updated | 9c5e54acb8dfdbc82609cccff0c57605 |
          +------------+-------------+-----------------+-----+----------+-------------+-----------+------+--------+----------------------------+----------------------------------+
          2 rows in set (0.00 sec)
          {noformat}

          5. Try to request the "13192-Test-Article" URL in the English siteaccess: a "Module not found" page (error kernel 20) error is displayed, instead of re-directing to "13192-Test-Article-Updated".
          Nuno Oliveira (Inactive) made changes -
          Status Open [ 1 ] Confirmed [ 10037 ]
          Nuno Oliveira (Inactive) made changes -
          Summary ezUrlAlias redirections in multilingual site return "Module not found" ezUrlAlias redirection in multilingual site return "Module not found"
          Nuno Oliveira (Inactive) made changes -
          Summary ezUrlAlias redirection in multilingual site return "Module not found" ezUrlAlias redirection in multilingual site returns "Module not found"
          Paulo Lopes (Inactive) made changes -
          Status Confirmed [ 10037 ] InputQ [ 10001 ]
          Joao Inacio (Inactive) made changes -
          Link This issue relates to EZP-23042 [ EZP-23042 ]
          Nuno Oliveira (Inactive) made changes -
          Status InputQ [ 10001 ] Closed [ 6 ]
          Resolution Duplicate [ 3 ]
          André Rømcke made changes -
          Workflow eZ Engineering Scrumban Workflow [ 66387 ] EZ* Development Workflow [ 85758 ]
          Alex Schuster made changes -
          Workflow EZ* Development Workflow [ 85758 ] EZEE Development Workflow [ 124656 ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Nuno Oliveira (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: