我想设置我的IIS7
服务器,以便让它与用laravel
(php 框架)编写的 Web 应用程序一起工作。
CI
我为(链接)找到了类似的东西
但它不起作用laravel
(当然我删除了index.php
重定向)。
实际上只有主页有效(www.mysite.com/public
)
IIS7
有人在 Laravel 中使用/d吗?
提前致谢
我想设置我的IIS7
服务器,以便让它与用laravel
(php 框架)编写的 Web 应用程序一起工作。
CI
我为(链接)找到了类似的东西
但它不起作用laravel
(当然我删除了index.php
重定向)。
实际上只有主页有效(www.mysite.com/public
)
IIS7
有人在 Laravel 中使用/d吗?
提前致谢
我在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.php
为paths.php
现在一切正常
我使用下面的代码,重定向到 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>
这是我的工作文件,有两条规则:(网站指向公共文件夹)
<?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>
检查 IIS 中的处理程序映射:
经过长时间的谷歌和测试后,它才开始工作。这是我的步骤:
带有 IIS 8.5 的 laravel5
set PATH=%PATH%;%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
composer global require "laravel/installer=~1.1"
lavarel new app
<app>/public
就是这样,快乐的拉瓦雷尔!
参考:http ://alvarotrigo.com/blog/installing-laravel-4-in-windows-7-with-iis7/
如果您希望能够检索您的 $_GET 变量,请不要使用:
<match url="^(.*)$" ignoreCase="false" />
而是使用:
<match url="^" ignoreCase="false" />
要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
添加网站。对于公用文件夹,指向Public
laravel/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>
这是我修复它的方法。打开配置文件,如果下面的映射不存在,把这些行放在下面
<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>