Php htaccess-在不包括公用目录的Laravel上进行身份验证
我目前正在Linux服务器上托管一个站点,无法访问根系统。我只能更改分配目录下的.htaccess文件 背景 基本上,我需要在我的应用程序中使用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%
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
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
FilesMatch
部分,重定向看起来像:http://cas.x.com/cas/login_service?http%3a%2f%2fapp.x.com%2finternal%2fmarketplace
如何仅将Auth应用于index.php
或应用于整个网站,但不包括public/
中的目录和文件?