Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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

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-在不包括公用目录的Laravel上进行身份验证_Php_Laravel_Apache_.htaccess_Cas - Fatal编程技术网

Php htaccess-在不包括公用目录的Laravel上进行身份验证

Php htaccess-在不包括公用目录的Laravel上进行身份验证,php,laravel,apache,.htaccess,cas,Php,Laravel,Apache,.htaccess,Cas,我目前正在Linux服务器上托管一个站点,无法访问根系统。我只能更改分配目录下的.htaccess文件 背景 基本上,我需要在我的应用程序中使用AuthType CAS。对受此保护的文件的请求将重定向到外部域身份验证服务器,如果登录成功,则会返回到站点我的问题背景是,在请求Chrome中的资源时,我需要处理CORS。 我在app.x.com上主持 身份验证服务器位于cas.x.com app.x.com/resource的请求被重定向到cas.x.com/cas/login\u服务?http%

我目前正在Linux服务器上托管一个站点,无法访问根系统。我只能更改分配目录下的.htaccess文件

背景 基本上,我需要在我的应用程序中使用
AuthType CAS
。对受此保护的文件的请求将重定向到外部域身份验证服务器,如果登录成功,则会返回到站点我的问题背景是,在请求Chrome中的资源时,我需要处理CORS。

  • 我在
    app.x.com
    上主持
  • 身份验证服务器位于
    cas.x.com
  • app.x.com/resource
    的请求被重定向到
    cas.x.com/cas/login\u服务?http%3a%2f%2fapp.x.com%2fresource
    ,然后返回
例如,我无法在Chrome上加载字体Awesome的字体,因为请求的URL位于我无法控制的
cas.x.com
上,并且它没有允许我的域作为源的标题。(TBH,我不明白为什么浏览器是这样实现的,因为CSS从我的域中加载得很好,但从CSS加载的字体变成了对CAS服务器的请求,但我离题了。)


所以我只想对Laravel的
index.php
文件进行身份验证。通过具有以下.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>

<FilesMatch "index.php">
    AuthType CAS
    CASAuthNHeader On
    Require valid-user
</FilesMatch>

选项-多视图
重新启动发动机
#如果不是文件夹,则重定向尾部斜杠。。。
重写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}]
认证类型CAS
卡萨恩海德酒店
需要有效用户
但是,重定向显示错误,并且由于不正确的重定向,此方法失败:

  • 302http://app.x.com/internal/marketplace 重定向到http://cas.x.com/cas/login_service?http%3a%2f%2fapp.x.com%2fpublic%2findex.php
  • 302http://cas.x.com/cas/login_service?http%3a%2f%2fapp.x.com%2fpublic%2findex.php 重定向到http://app.x.com/public/index.php?ticket=ST-1180135-XXXXXXXXXXXXXX-cas2
  • 404http://app.x.com/public/index.php
它显示404,因为我没有在Laravel中路由该路径

如果没有
FilesMatch
部分,重定向看起来像:
http://cas.x.com/cas/login_service?http%3a%2f%2fapp.x.com%2finternal%2fmarketplace

如何仅将Auth应用于
index.php
或应用于整个网站,但不包括
public/
中的目录和文件?