Php .htaccess导致重定向
您好,我有2个文件夹在公共_html ex.(主文件夹和子文件夹)内。在与我的两个文件夹相同级别的public_html中,我有一个.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
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。哦,天啊!!!!!!!!它起作用了。非常感谢你,伙计。顺便说一句,你能解释一下这个代码的含义吗?