除了主页以外的其他路线的Laravel Project on Pleask不起作用

时间:2017-11-02 06:11:48

标签: php laravel .htaccess laravel-5 server

我在httpdocs文件夹中的Plesk服务器上传了我的Laravel项目的文件,并更改了必要的权限。现在我的主页工作正常但其他路线显示404服务器错误(请参见屏幕截图[enter image description here

为了检查不同论坛和stackoverflow中的几个解决方案,我还试图在我的.htaccess文件中进行更改但却无法解决。 目前我正在使用以下代码hor .htaccess文件,该文件在我的localhost上工作正常

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

如果您找到任何解决方案,请告诉我

1 个答案:

答案 0 :(得分:2)

由于您使用的是IIS,因此.htaccess不会涉及重定向以打开除主页之外的任何子页面。相反,应在domain的web.config文件中指定重定向,例如:

<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>
    <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>
    <httpErrors errorMode="Detailed" />
</system.webServer>

此文件应放在域的httpdocs或httpdocs / public文件夹中,具体取决于项目配置。 以下教程可能会提供有关在IIS中设置Laravel的一些其他详细信息:herehere