Какая альтернатива переписать на IIS? - PullRequest
1 голос
/ 16 февраля 2020

У меня есть следующий файл .htaccess на моем веб-сайте - мне нужно переместить его на компьютер windows IIS и возникают проблемы с использованием модуля URL-Rewrite для импорта правила и создания файла web.config .

Это мой .htaccess файл

# Rewrite URLs and direct to index.php

<IfModule mod_rewrite.c>
Options -Multiviews
RewriteEngine On
##
## If moving host, change the structure below to folder name of where public folder lives
##
RewriteBase /foldername/public
##
##
##
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule  ^(.+)$ index.php?url=$1 [QSA,L]
</IfModule>

Сбой на RewriteBase, но я понимаю, что в файле .htaccess крайне важно, чтобы мой сайт функционировал.

Может кто-нибудь дать мне указатели?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2020

Это будет соответствовать нижеследующему правилу перезаписи URL:

<rewrite>
  <rules>
    <rule name="Imported Rule 1" stopProcessing="true">
      <match url="^(.+)$" ignoreCase="false" />
      <conditions>
        <!--##-->
        <!--## If moving host, change the structure below to folder name of where public folder lives-->
        <!--##-->
        <!--##-->
        <!--##-->
        <!--##-->
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
      </conditions>
      <action type="Rewrite" url="/foldername/public/index.php?url={R:1}" appendQueryString="true" />
    </rule>
  </rules>
</rewrite>
1 голос
/ 17 февраля 2020

Директива RewriteBase устанавливает URL-путь для относительного пути замен (переопределяя префикс каталога ). Таким образом, вместо использования директивы RewriteBase вы можете просто жестко закодировать URL-путь в самой директиве RewriteRule.

Например:

RewriteRule  ^(.+)$ /foldername/public/index.php?url=$1 [QSA,L]
...