Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Php .htaccess导致重定向_Php_Laravel_.htaccess_Mod Rewrite_Cpanel - Fatal编程技术网

Php .htaccess导致重定向

Php .htaccess导致重定向,php,laravel,.htaccess,mod-rewrite,cpanel,Php,Laravel,.htaccess,Mod Rewrite,Cpanel,您好,我有2个文件夹在公共_html ex.(主文件夹和子文件夹)内。在与我的两个文件夹相同级别的public_html中,我有一个.htaccess文件,如下所示 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteOptions inherit Options -Indexes # php -- BEGIN cPan

您好,我有2个文件夹在公共_html ex.(主文件夹和子文件夹)内。在与我的两个文件夹相同级别的public_html中,我有一个.htaccess文件,如下所示

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteOptions inherit
Options -Indexes

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php73” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php73 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
RewriteCond %{HTTP_HOST} ^paw\.xevz\.migor\.eu$ [OR]
RewriteCond %{HTTP_HOST} ^www\.paw\.xevz\.migor\.eu$
RewriteRule ^/?$ "http\:\/\/paw\.xevz\.migor\.eu\/mainfolder" [R=301,L]
重新编写引擎打开
重写cond%{HTTPS}=在…上
重写规则^(.*)$https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
重写选项继承
选项-索引
#php——开始cPanel生成的处理程序,不编辑
#将“ea-php73”包设置为默认的“PHP”编程语言。
AddHandler应用程序/x-httpd-ea-php73.php.php7.phtml
#php——结束cPanel生成的处理程序,不编辑
RewriteCond%{HTTP_HOST}^paw\.xevz\.migor\.eu$[或]
重写cond%{HTTP_HOST}^www\.paw\.xevz\.migor\.eu$
重写规则^/?$“http\:\/\/paw\.xevz\.migor\.eu\/main文件夹”[R=301,L]
此.htaccess将页面重定向到main文件夹。当我尝试像这样查看我的子文件夹时,一切都很正常,但是因为url中没有index.php,所以在尝试查看某些函数时遇到了404错误。我在我的子文件夹中添加了这个.htaccess

<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}]
</IfModule>

选项-多视图
重新启动发动机
#如果不是文件夹,则重定向尾部斜杠。。。
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
#句柄授权头
RewriteCond%{HTTP:Authorization}。
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]

它工作得很好,但我发现当我像以前一样尝试打开时,它会将我重定向到主文件夹。为了查看我的代码,我必须像这样查看链接。有人能解释为什么会这样吗?我对.htaccess不太了解,也不知道发生了什么。在我的laravel项目中,或者在.htaccess中,我将如何避免这种冲突?所以当我想查看我的子文件夹时,我需要把它放在url中?没有重定向。谢谢。

通过将此行添加到您的.htaccess,您可以从重定向中排除文件夹:

RewriteRule ^ (yourFolderName) ($ | /) - [L]

在根目录中具有此规则。htaccess:

RewriteRule ^ (yourFolderName) ($ | /) - [L]
#使用_请求确保我们匹配空格(\s)
#后面跟着1+/后面跟着?或\s
RewriteCond%{THE_REQUEST}\s/+[?\s]
重写cond%{HTTP_HOST}^(?:www\)?paw\.xevz\.migor\.eu$[NC]
重写规则^/mainfolder/[R=302,L]
_REQUEST
变量表示Apache从浏览器收到的原始请求,在执行其他重写指令后,它不会被覆盖。此变量的示例值为
GET/index.php?id=123 HTTP/1.1
GET/HTTP/1.1


在测试此更改之前,请确保清除浏览器缓存。

谢谢。我试着使用这个代码。但是如果我不把它放在url中,网站就不会重定向到mainfolder。如果我没有将主文件夹放在url中,我仍然需要重定向。哪个url不使用此规则重定向?当我尝试访问时,我仍然希望它重定向到。谢谢,伙计。不幸的是,当我尝试你更新的答案时,我给了我一个错误500。哦,天啊!!!!!!!!它起作用了。非常感谢你,伙计。顺便说一句,你能解释一下这个代码的含义吗?