yii2 ne peut pas accéder au sous-dossier racine à l'aide de htaccess

2019-07-04 php .htaccess yii2

Je suis vraiment mauvais au réglage htaccess et j'aimerais avoir de l'aide avec ça. J'ai un projet dans un sous-dossier et peut être ouvert comme ceci: www.mydomain.com/subfolder/. J'ai mis mon projet dans "sous-dossier". "sous-dossier" n'est pas un sous-domaine, j'ai simplement créé un nouveau dossier dans le dossier racine.

Je peux ouvrir la page d'accueil, mais toutes les autres pages comme www.mydomain.com/subfolder/about, www.mydomain.com/subfolder/product ont 500 page d'erreur de serveur interne. Je ne peux pas non plus accéder au fichier téléchargé dans le dossier de téléchargement, donc une URL comme www.domain.com/subfolder/uploads/filename.jpg renverra l'erreur 404. Je suis presque sûr qu'il n'y a pas d'erreur php car je l'ai également téléchargé dans mon autre sous-domaine (domaine différent) et cela fonctionne très bien.

Voici mon paramètre htaccess:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_URI} /(backend)
RewriteRule ^backend/assets/(.*)$ backend/web/assets/$1 [L]
RewriteRule ^backend/css/(.*)$ backend/web/css/$1 [L]
RewriteRule ^backend/font/(.*)$ backend/web/font/$1 [L]
RewriteRule ^backend/plugins/(.*)$ backend/web/plugins/$1 [L]
RewriteRule ^backend/images/(.*)$ backend/web/images/$1 [L]
RewriteRule ^backend/js/(.*)$ backend/web/js/$1 [L]

RewriteCond %{REQUEST_URI} !/backend/web/(assets|css|font|plugins|images|js)/
RewriteCond %{REQUEST_URI} /(backend)
RewriteRule ^.*$ backend/web/index.php [L]

RewriteCond %{REQUEST_URI} /(assets|css|js|img|fonts|uploads)
RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
RewriteRule ^img/(.*)$ frontend/web/img/$1 [L]
RewriteRule ^fonts/(.*)$ frontend/web/fonts/$1 [L]
RewriteRule ^uploads/(.*)$ uploads/$1 [L]

RewriteCond %{REQUEST_URI} !/(frontend|backend)/web/(assets|css|js|img|images|fonts|uploads|plugins|font)/
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ frontend/web/index.php

Quelqu'un pourrait-il m'aider?

Answers

Après avoir vérifié le script, j'ai trouvé des différences dans le code. Et j'essaie de réparer du code comme celui-ci.

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_URI} ^/(backend)
RewriteRule ^backend/assets/(.*)$ backend/web/assets/$1 [L]
RewriteRule ^backend/css/(.*)$ backend/web/css/$1 [L]
RewriteRule ^backend/font/(.*)$ backend/web/font/$1 [L]
RewriteRule ^backend/img/(.*)$ backend/web/img/$1 [L]
RewriteRule ^backend/js/(.*)$ backend/web/js/$1 [L]
RewriteRule ^backend/plugins/(.*)$ backend/web/plugins/$1 [L]

RewriteCond %{REQUEST_URI} !/backend/web/(assets|css|font|img|js|plugins)/
RewriteCond %{REQUEST_URI} ^/(backend)
RewriteRule ^.*$ backend/web/index.php [L]

RewriteCond %{REQUEST_URI} ^/(assets|css|font|img|js|uploads)
RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
RewriteRule ^font/(.*)$ frontend/web/font/$1 [L]
RewriteRule ^img/(.*)$ frontend/web/img/$1 [L]
RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
RewriteRule ^uploads/(.*)$ frontend/web/uploads/$1 [L]

RewriteCond %{REQUEST_URI} !/(frontend|backend)/web/(assets|css|font|img|js|uploads|plugins)/
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ frontend/web/index.php [L]

Il y a un signe que j'ajoute qui est ce signe (^). Et pour télécharger un fichier (image, js, css, etc.), je vous recommande de télécharger vers le dossier backend / web / somefolder ou frontend / web / somefolder. Mettre à côté de ces deux endroits, pour les images, rend vos images ne peuvent pas apparaître partout (selon mon expérience). Et aussi, vous pouvez essayer de rendre le dossier à l'intérieur de frontend / web / ou backend / web / du même nom, de sorte que cela vous facilite la mémorisation (veuillez consulter le code que je corrige pour voir ce que je veux dire). J'espère que cela aide les autres.

Si quelqu'un a la meilleure solution, partagez-la ici. Merci.

Related