4

我想设置我的IIS7服务器,以便让它与用laravel(php 框架)编写的 Web 应用程序一起工作。

CI我为(链接)找到了类似的东西

但它不起作用laravel(当然我删除了index.php重定向)。

实际上只有主页有效(www.mysite.com/public

IIS7有人在 Laravel 中使用/d吗?

提前致谢

4

8 回答 8

6

我在web.config里面的根文件夹中创建了文件<configuration></configuration>

<system.webServer>
    <defaultDocument>
        <files>
            <clear />
            <add value="index.php" />
            <add value="default.aspx" />
            <add value="Default.htm" />
            <add value="Default.asp" />
            <add value="index.htm" />
            <add value="index.html" />
        </files>
    </defaultDocument>
    <handlers accessPolicy="Read, Execute, Script" />
    <rewrite>
        <rules>
            <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/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

然后将index.php公用文件夹的文件复制到项目的根文件夹中,如指南所述修改../paths.phppaths.php

现在一切正常

于 2013-01-17T16:15:44.537 回答
4

我使用下面的代码,重定向到 index.php/{R:1}而不是public/{R:1} 直接开箱即用,然后没有路径更改。

<rewrite>
    <rules>
        <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="index.php/{R:1}" />
        </rule>
    </rules>
</rewrite>
于 2014-03-21T10:14:54.663 回答
3

这是我的工作文件,有两条规则:(网站指向公共文件夹)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="RewriteRequestsToPublic">
          <match url="^(.*)$" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
          </conditions>
          <action type="Rewrite" url="/{R:0}" />
        </rule>
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^(.*)$" ignoreCase="false" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.php/{R:1}" appendQueryString="true" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
于 2015-02-27T20:34:17.413 回答
3

检查 IIS 中的处理程序映射:

  1. 启动 IIS
  2. 点击您的网站
  3. 继续“处理程序映射”(在 IIS 块中)
  4. 搜索路径 PHP,名称 = PHPxx_via_FastCGI(xx = php 版本)
  5. 双击它,单击请求限制并单击选项卡“动词”,您可以在其中选择所有动词。这将解决它:-)
于 2014-02-10T18:19:12.130 回答
3

经过长时间的谷歌和测试后,它才开始工作。这是我的步骤:

带有 IIS 8.5 的 laravel5

  1. 安装窗口平台安装程序
  2. 使用窗口平台安装程序安装 php-5.6
  3. 使用窗口平台安装程序为 IIS 安装 php-manager(可选)
  4. 安装Visual C++ Redistributable for Visual Studio 2012 (version x86
    )
  5. 安装作曲家.exe
  6. 将作曲家供应商 bin 路径导出到路径
    set PATH=%PATH%;%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
  7. composer global require "laravel/installer=~1.1"
  8. lavarel new app
  9. 在 IIS 中创建新应用程序并指向<app>/public

就是这样,快乐的拉瓦雷尔!

参考:http ://alvarotrigo.com/blog/installing-laravel-4-in-windows-7-with-iis7/

于 2015-06-19T15:57:51.857 回答
0

如果您希望能够检索您的 $_GET 变量,请不要使用:

<match url="^(.*)$" ignoreCase="false" />

而是使用:

<match url="^" ignoreCase="false" />

于 2013-09-19T16:40:35.983 回答
0

IIS在您的 Windows 上安装,请转到control panel -> uninstall programs并按Turn Off Windows Features On/Off链接,然后单击IIS并选择CGI选项。

在此处输入图像描述

Web Platform Installer从网上下载install PHP and SQL drivers for IIS

从程序打开IIS添加网站。对于公用文件夹,指向Publiclaravel/lumen 项目中的文件夹。

用于 Laravel 和 Lumen 项目。在任何可访问的文件夹中从 composer 创建项目。进入public文件夹结构中的文件夹并创建web.config具有以下内容的文件我从 laracasts 获得了这个

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
          <rules>
            <rule name="Rule 1" stopProcessing="true">
              <match url="^(.*)/$" ignoreCase="false" />
              <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
            </rule>
            <rule name="Rule 2" stopProcessing="true">
              <match url="^" ignoreCase="false" />
              <conditions>
                <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="index.php" />
            </rule>
          </rules>
        </rewrite>
    </system.webServer>
</configuration> 
于 2017-08-20T19:06:49.603 回答
0

这是我修复它的方法。打开配置文件,如果下面的映射不存在,把这些行放在下面

  <rewrite>
    <rules>
      <rule name="Imported Rule 1" stopProcessing="true">
        <match url="^(.*)/$" ignoreCase="false" />
        <conditions>
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
        </conditions>
        <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
      </rule>
      <rule name="Imported Rule 2" stopProcessing="true">
        <match url="^" ignoreCase="false" />
        <conditions>
          <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="index.php" />
      </rule>
    </rules>
  </rewrite>
于 2017-03-21T08:28:16.477 回答