【问题标题】:Laravel subdomain .htaccess // error 500 (Wedos)Laravel 子域 .htaccess // 错误 500 (Wedos)
【发布时间】:2020-03-21 17:35:25
【问题描述】:

我在这里尝试了所有解决方案。我的问题是我的共享虚拟主机提供商阻止了 MultiViews。

我使用 laravel 构建的主域可以工作 (liated.cz),但我的子域不断给我错误 500 / 403 或无限循环,这取决于我编写的 .htaccess

结构:

www

-----域

----------liated.cz // 有效

-----------testing.liated.cz // 错误

-----子域

在子域中,laravel 从不工作,这是我的提供商 ( Wedos ) 的一个常见问题,无论如何,您可以将子域放在域文件夹中。

Laravel:

testing.liated.cz

-----------公开

---------------------index.php // 这里我该走了。

!!没有!!

The .htaccess CAN'T contain 

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

我在 domain/testing.liated.cz 中的 .htaccess

RewriteEngine on

RewriteCond %{HTTP_HOST} ^testing.liated.cz$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.testing.liated.cz$
RewriteCond %{REQUEST_URI} !/public/
RewriteRule (.*) /public/$1 [L]

我在 domain/testing.liated.cz/public 中的 .htaccess

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

当我删除 Options +FollowSymLinks 时,我得到了一个死循环。 我非常绝望,将来我必须更换我的提供商,我已经厌倦了这个,2 天浪费时间使用 .htaccess。

希望有人能提供帮助。提前致谢。

laravel 应用程序工作正常,我尝试了一个免费的共享提供程序,它没有给出任何错误。

编辑

根目录下的.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on

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

.htaccess 公开

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

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

现在我无法访问 testing.liated.cz/

但我可以访问 testing.liated/admin 或 testing.liated/admin/gallery

那又怎样:]

【问题讨论】:

  • 如果出现500错误,日志的内容是什么?
  • 无法访问日志,这是一项付费服务​​,我的供应商是个娘炮。
  • FollowSymLinks 是 mod_rewrite 工作的要求。 MultiViews 通常只在您重写与组成路径和实际现有文件之间部分重叠的内容时才会发挥作用 - 例如,将 /products/123 重写为 products.php?id=123。您能否更具体地说明什么不起作用,哪些示例 URL?根本无法访问子域,甚至无法访问根?还是它下面的特定网址?
  • 甚至无法访问根目录,我设法访问了 testing.liated.cz/admin/login,但仅在一段时间内我更改了 i,我不记得 .htaccess为了它。 2天前我使用了一些htaccess并且一切正常,然后我下载了项目,将.htaccess更改为在localhost上工作,然后它不起作用,我设置了文件权限,这应该不是问题。
  • 也许可以尝试在您的本地开发设置上启用 MultiViews,然后尝试在实时服务器上重现条件 - 然后检查日志文件的内容。跨度>

标签: php laravel apache .htaccess subdomain


【解决方案1】:

我不知道为什么,但现在它适用于这些设置,我也在 .env 中编写了 url testing.liated.cz。希望这可以帮助将来的人。

根目录下的.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on

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

.htaccess 公开

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

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

【讨论】:

    猜你喜欢
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多