Преобразование файла Yii2 .htaccess в файл web.config. - PullRequest
0 голосов
/ 31 января 2019

Я развертываю свое приложение yii2 на Azure и, следовательно, должен создать эквивалент web.config .htaccess.Я пытался следовать ответам, доступным на этом форуме и в Google, и даже пробовал автоматическое создание файлов, но все равно получаю ошибку.Вот мои два файла .htacess

Options -Indexes

<IfModule mod_rewrite.c> 
  RewriteEngine on

  RewriteCond %{REQUEST_URI} !^public
  RewriteRule ^(.*)$ frontend/web/$1 [L] 
</IfModule>

# Deny accessing below extensions
<Files ~ "(.json|.lock|.git)">
Order allow,deny
Deny from all
</Files>

# Deny accessing dot files
RewriteRule (^\.|/\.) - [F]

Второй файл .htaccess:

RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php

То, что я пытаюсь использовать в качестве файла web.config, приведено ниже для первого.htaccess файл, который не работает:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <configSections>
        <sectionGroup name="system.webServer">
            <sectionGroup name="rewrite">
                <section name="rewriteMaps" overrideModeDefault="Allow" />
                <section name="rules" overrideModeDefault="Allow" />
            </sectionGroup>
        </sectionGroup>
    </configSections>

    <system.web>
      <customErrors mode="Off"/>
    </system.web>

    <system.webServer>
        <security>
          <requestFiltering>
            <fileExtensions>
              <add fileExtension=".json" allowed="false" />
              <add fileExtension=".git" allowed="false" />
              <add fileExtension=".lock" allowed="false" />
            </fileExtensions>
          </requestFiltering>
        </security>
        <rewrite>
          <rules>
            <rule name="Imported Rule 1" stopProcessing="true">
              <match url="^(.*)$" ignoreCase="false" />
              <conditions>
                <add input="{REQUEST_URI}" pattern="^public" ignoreCase="false" />
              </conditions>
              <action type="Rewrite" url="frontend/web/{R:1}" />
            </rule>
          </rules>
        </rewrite>
        <httpErrors errorMode="Detailed"></httpErrors>
    </system.webServer>
</configuration>

Любой, кто может помочь мне, указал на проблему с моим кодом.Спасибо

РЕДАКТИРОВАТЬ:

Я добавил сообщение об ошибке в файл web.config, и теперь я получаю эту ошибку:

The 'type' attribute must be specified on the 'section' tag. (D:\home\site\wwwroot\web.config line 6)

The 'type' attribute must be specified on the 'section' tag. (D:\home\site\wwwroot\web.config line 7)

Я не уверен, что этоозначает, что большинство ответов не имеют атрибута типа.

РЕДАКТИРОВАТЬ 2:

После стольких попыток переписать файл web.config;Теперь я застрял на ошибке, которая говорит о том, что ранее был определен «system.webServer», и я не могу определить, где на самом деле находится ошибка:

Вот трассировка ошибки

Server Error in '/' Application.
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Section or group name 'system.webServer' is already defined. Updates to this may only occur at the configuration level where it is defined.

Source Error: 


An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Source File: D:\home\site\wwwroot\web.config    Line: 4 


Show Additional Configuration Errors:


The 'type' attribute must be specified on the 'section' tag. (D:\home\site\wwwroot\web.config line 6)

The 'type' attribute must be specified on the 'section' tag. (D:\home\site\wwwroot\web.config line 7)


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3163.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...