Skip to main content
Usually the request to the home page comes with no requesturi parameter. The answer will be perfect if you check if the request has requesturi parameter to avoid the 404 error (page not found).
Source Link

The problem as @Indolering mentioned is related to URL Rewrite module that the URLs containing UTF-8 characters is not correctly passed when processed by the URL Rewrite module.

Because I'm not the server owner and I'm unable to install the mentioned hotfix (even though I'm using IIS8.5 the problem is still existed) I had to get around this in somehow.

The solution suggested by @pouria-p for Joomla is also applicable to Wordpress.

Step 1. Update the rewrite rule in the web.config file

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    
                    <!-- The changes are applied to this line only -->
                    <action type="Rewrite" url="index.php" />
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

The rule will be as following :

<action type="Rewrite" url="index.php?requesturi={URL}" />

Step 2. Update the $_SERVER['REQUEST_URI'] manually by adding the following line to the top of the index.php file :

if(isset($_GET['requesturi']))
  $_SERVER['REQUEST_URI'] = $_GET['requesturi'];

The problem as @Indolering mentioned is related to URL Rewrite module that the URLs containing UTF-8 characters is not correctly passed when processed by the URL Rewrite module.

Because I'm not the server owner and I'm unable to install the mentioned hotfix (even though I'm using IIS8.5 the problem is still existed) I had to get around this in somehow.

The solution suggested by @pouria-p for Joomla is also applicable to Wordpress.

Step 1. Update the rewrite rule in the web.config file

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    
                    <!-- The changes are applied to this line only -->
                    <action type="Rewrite" url="index.php" />
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

The rule will be as following :

<action type="Rewrite" url="index.php?requesturi={URL}" />

Step 2. Update the $_SERVER['REQUEST_URI'] manually by adding the following line to the top of the index.php file :

$_SERVER['REQUEST_URI'] = $_GET['requesturi'];

The problem as @Indolering mentioned is related to URL Rewrite module that the URLs containing UTF-8 characters is not correctly passed when processed by the URL Rewrite module.

Because I'm not the server owner and I'm unable to install the mentioned hotfix (even though I'm using IIS8.5 the problem is still existed) I had to get around this in somehow.

The solution suggested by @pouria-p for Joomla is also applicable to Wordpress.

Step 1. Update the rewrite rule in the web.config file

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    
                    <!-- The changes are applied to this line only -->
                    <action type="Rewrite" url="index.php" />
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

The rule will be as following :

<action type="Rewrite" url="index.php?requesturi={URL}" />

Step 2. Update the $_SERVER['REQUEST_URI'] manually by adding the following line to the top of the index.php file :

if(isset($_GET['requesturi']))
  $_SERVER['REQUEST_URI'] = $_GET['requesturi'];
Fix GET param name
Source Link

The problem as @Indolering mentioned is related to URL Rewrite module that the URLs containing UTF-8 characters is not correctly passed when processed by the URL Rewrite module.

Because I'm not the server owner and I'm unable to install the mentioned hotfix (even though I'm using IIS8.5 the problem is still existed) I had to get around this in somehow.

The solution suggested by @pouria-p for Joomla is also applicable to Wordpress.

Step 1. Update the rewrite rule in the web.config file

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    
                    <!-- The changes are applied to this line only -->
                    <action type="Rewrite" url="index.php" />
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

The rule will be as following :

<action type="Rewrite" url="index.php?requestedURL=requesturi={URL}" />

Step 2. Update the $_SERVER['REQUEST_URI'] manually by adding the following line to the top of the index.php file :

$_SERVER['REQUEST_URI'] = $_GET['requesturi'];

The problem as @Indolering mentioned is related to URL Rewrite module that the URLs containing UTF-8 characters is not correctly passed when processed by the URL Rewrite module.

Because I'm not the server owner and I'm unable to install the mentioned hotfix (even though I'm using IIS8.5 the problem is still existed) I had to get around this in somehow.

The solution suggested by @pouria-p for Joomla is also applicable to Wordpress.

Step 1. Update the rewrite rule in the web.config file

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    
                    <!-- The changes are applied to this line only -->
                    <action type="Rewrite" url="index.php" />
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

The rule will be as following :

<action type="Rewrite" url="index.php?requestedURL={URL}" />

Step 2. Update the $_SERVER['REQUEST_URI'] manually by adding the following line to the top of the index.php file :

$_SERVER['REQUEST_URI'] = $_GET['requesturi'];

The problem as @Indolering mentioned is related to URL Rewrite module that the URLs containing UTF-8 characters is not correctly passed when processed by the URL Rewrite module.

Because I'm not the server owner and I'm unable to install the mentioned hotfix (even though I'm using IIS8.5 the problem is still existed) I had to get around this in somehow.

The solution suggested by @pouria-p for Joomla is also applicable to Wordpress.

Step 1. Update the rewrite rule in the web.config file

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    
                    <!-- The changes are applied to this line only -->
                    <action type="Rewrite" url="index.php" />
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

The rule will be as following :

<action type="Rewrite" url="index.php?requesturi={URL}" />

Step 2. Update the $_SERVER['REQUEST_URI'] manually by adding the following line to the top of the index.php file :

$_SERVER['REQUEST_URI'] = $_GET['requesturi'];
Source Link

The problem as @Indolering mentioned is related to URL Rewrite module that the URLs containing UTF-8 characters is not correctly passed when processed by the URL Rewrite module.

Because I'm not the server owner and I'm unable to install the mentioned hotfix (even though I'm using IIS8.5 the problem is still existed) I had to get around this in somehow.

The solution suggested by @pouria-p for Joomla is also applicable to Wordpress.

Step 1. Update the rewrite rule in the web.config file

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    
                    <!-- The changes are applied to this line only -->
                    <action type="Rewrite" url="index.php" />
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

The rule will be as following :

<action type="Rewrite" url="index.php?requestedURL={URL}" />

Step 2. Update the $_SERVER['REQUEST_URI'] manually by adding the following line to the top of the index.php file :

$_SERVER['REQUEST_URI'] = $_GET['requesturi'];