Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess,Laravel&;Ikonboard_Apache_.htaccess_Laravel - Fatal编程技术网

Apache .htaccess,Laravel&;Ikonboard

Apache .htaccess,Laravel&;Ikonboard,apache,.htaccess,laravel,Apache,.htaccess,Laravel,我必须承认,创建mod重写规则仍然让我困惑!所以,我需要一些帮助请 我在Laravel中建立了一个站点,但现在需要在域中添加一个现有的论坛。该论坛是IKOUNDAR,它位于实时站点的cgi_bin文件夹中。当我将其复制到新站点时,我无法获得访问权限,因为htaccess正在将所有URL重写到公用文件夹(Laravel想要的地方) 那么,我如何才能对cgi_bin文件夹发出任何请求,并为Laravel将重写保持为公共 <IfModule mod_rewrite.c> Optio

我必须承认,创建mod重写规则仍然让我困惑!所以,我需要一些帮助请

我在Laravel中建立了一个站点,但现在需要在域中添加一个现有的论坛。该论坛是IKOUNDAR,它位于实时站点的cgi_bin文件夹中。当我将其复制到新站点时,我无法获得访问权限,因为htaccess正在将所有URL重写到公用文件夹(Laravel想要的地方)

那么,我如何才能对cgi_bin文件夹发出任何请求,并为Laravel将重写保持为公共

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Rewrite to 'public' folder
    RewriteCond %{HTTP_HOST} ^www.mydomain.com$
    RewriteCond %{REQUEST_URI} !public/
    RewriteRule (.*) public/$1 [L]
</IfModule>

选项+FollowSymlinks
重新启动发动机
#重写到“公用”文件夹
重写cond%{HTTP_HOST}^www.mydomain.com$
重写cond%{REQUEST_URI}!公开的/
重写规则(.*)public/$1[L]
谢谢

简单:

RewriteCond {%REQUEST_URI} !^/cgi_bin
将此添加到其他
请求\u URI
规则之上。如果
cgi\u bin
在URI中,那么它将停止重写

编辑-根据您对目录结构的响应,它似乎是错误的。你的
www
目录是你的
public
目录。因此,您的结构应该如下所示:

  • /www/
    (您的公用文件夹)
    • bundles/
      (等)
    • cgi\u bin/
    • .htaccess
    • index.php
  • /laravel/
  • (等等……)
将目录结构更改为那样,并确保
.htaccess
文件中包含以下内容:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

选项+以下符号链接-多视图
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]

如果调用CGI文档,它应该通过,因为
%{REQUEST\u FILENAME}-f
设置在上面。所有资产也应该通过。您无需指定是否正在请求
cgi\u bin
文件夹。如果它不起作用,那么像我最初在这个答案中所做的那样添加行(除此之外,您可以将规则放在
上的
重写引擎下

您的
index.php
文件和
.htaccess
文件在哪里?它们都应该在
public
目录中。您的
cgi_bin
目录也应该在那里。其他所有内容(除了资源,例如图像)都应该在那里。)应该在web根目录下。如果您不确定,请在问题中发布您的目录结构。嘿,迈克-谢谢您的帮助!根目录是“www”。此文件夹包含.htaccess文件,公共文件夹(用于Laravel)还有cgi_bin文件夹。不,该结构不正确。Laravel不希望在公用根目录下有一个
public
文件夹。您的公用根目录是您的
www
文件夹。让我们来看看