Pour des raisons hors de mon contrôle, j'ai besoin de faire fonctionner une instance de Laravel en tant que sous-répertoire de WordPress dans IIS 10. J'ai essayé toutes les options imaginables dans ma configuration web.config <system.webServer><rewrite><rules />
, mais je ne peux jamais faire fonctionner l'un ou l'autre. Si je laisse la règle de réécriture dans WordPress, Laravel ne fonctionne pas (WordPress répond avec un 404) et si je désactive la règle WordPress, Laravel fonctionne mais évidemment pas WordPress.Configurer Laravel comme sous-répertoire de Wordpress sur IIS
Voici la config à la racine du site (où se trouve WordPress):
<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" />
<!-- Laravel App -->
<add input="{REQUEST_URI}" pattern="^/laravel" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
Merci à une recherche, je suis tombé sur ce (IIS Url Rewrite not working with nested WP installs) qui me fit mettre un web.config imbriqué à l'intérieur le sous-dossier pour l'application Laravel ce qui suit:
<rewrite>
<rules>
<clear />
<rule name="Imported Rule 2" stopProcessing="true">
<match url="/(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="public/index.php/{R:1}" />
</rule>
</rules>
</rewrite>
Bizarrement, avec ces il presque œuvres - aussi longtemps que je vais à site.com/laravel/public, tout le travail de vues associées et tout jeux bien t ensemble. Je n'arrive pas à faire sortir le/public de l'URL, qui n'est évidemment pas utilisable.
Des conseils? Je suis certain que c'est proche mais je ne peux pas le comprendre.