Regex htaccess重写适用于所有用户,并非有意

Regex htaccess重写适用于所有用户,并非有意,regex,apache,.htaccess,mod-rewrite,url-rewriting,Regex,Apache,.htaccess,Mod Rewrite,Url Rewriting,在我的根中。我有访问权限 Options +FollowSymlinks Options -Indexes RewriteEngine on RewriteCond %{REQUEST_URI} !^/dashboard/ RewriteCond %{HTTPS} =on RewriteCond %{HTTP_HOST} ^dashboard.domain.com RewriteRule ^(.*)$ /dashboard/$1 [NC,L,NS] 在仪表板文件夹的.htaccess中,我有

在我的根中。我有访问权限

Options +FollowSymlinks
Options -Indexes
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/dashboard/
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^dashboard.domain.com
RewriteRule ^(.*)$ /dashboard/$1 [NC,L,NS]
在仪表板文件夹的.htaccess中,我有

RewriteRule ^go/([^/.]+)/?$ index.php?flag=$1 [L]
当我转到dashboard.domain.com/login时,它会抛出一个错误。 当我转到dashboard.domain.com/go/a时,它会工作

当我退出仪表板重写规则时,会出现相反的情况,/login起作用,但/go/$1则不起作用。当检测到/go时,我缺少什么使/go重写仅适用

编辑(根目录访问的其余部分)

AddHandler应用程序/x-httpd-php54.php
选项+FollowSymlinks
选项-索引
重新启动发动机
重写cond%{SERVER_PORT}^80$
重写规则^.*$https://%{SERVER_NAME}%{REQUEST_URI}[R=301,L]
重写cond%{REQUEST_URI}^/火箭/
RewriteCond%{HTTPS}=on
重写cond%{HTTP_HOST}^launch.domain.com
重写规则^(.*)$/rocket/$1[NC,L,NS]
重写cond%{REQUEST_URI}^/仪表板/
RewriteCond%{HTTPS}=on
重写cond%{HTTP_HOST}^dashboard.domain.com
重写规则^(.*)$/dashboard/$1[NC,L,NS]
重写cond%{REQUEST_URI}^/img/
RewriteCond%{HTTPS}=on
重写cond%{HTTP_HOST}^img.domain.com
重写规则^(.*)$/img/$1[NC,L,NS]
#重写条件%{HTTPS}关闭
#重写规则。*https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
#重写cond%{HTTP_HOST}^(www\.)?domain\.com[NC]
#重写cond%{HTTP_HOST}!launch.domain.com[NC]
#重写规则^(.*)$https://launch.domain.com/$1[R=301,L,QSA]
重定向301/偷看/
重写规则^error/([^/]+)error/failure.php?代码=$1
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}\.php-f
重写规则^(.*)$$1.php
标题集访问控制允许原点“*”
错误文档400/错误/400
错误文档401/错误/401
错误文档403/错误/403
错误文档404/错误/404
错误文档500/错误/500

仪表板规则下面的规则可能会影响您的规则并更改
%{REQUEST\u URI}
变量。您可以使用请求变量,并在清除浏览器缓存后重新测试它:

RewriteCond %{THE_REQUEST} !/(dashboard|error)/
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} =dashboard.domain.com
RewriteRule ^(.*)$ dashboard/$1 [NC,L]

@anubhava“在此服务器上找不到请求的URL/dashboard/login。此外,在尝试使用ErrorDocument处理请求时遇到404 not found错误。”我将编辑帖子以包含其余内容。不幸的是,当我将代码更改为此并清除缓存时,它最终重定向到500错误。无论是否注释掉dashboard.htaccess重写,都会发生这种情况。我尝试将您提供的代码更改为https,因为我有一个通配符SSL证书,但结果相同。相同的错误。错误日志显示“public_html/dashboard/login”的大量文件不存在该站点是dashboard.rocketlobby.com--我已恢复到原始的重写规则,并且没有注释掉/go rewrite,这是一个404错误。使用此规则
https://dashboard.rocketlobby.com/login
将被路由到
https://dashboard.rocketlobby.com/dashboard/login
。即使我输入
https://dashboard.rocketlobby.com/dashboard/login
直接在我的浏览器中,它会导致404,但是您还需要
.php
/dashboard/.htaccess
中添加规则。在root.htaccess中使用相同的规则无法使其工作。哇..-\这太令人沮丧了。这一切都解决了。非常感谢。
RewriteCond %{THE_REQUEST} !/(dashboard|error)/
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} =dashboard.domain.com
RewriteRule ^(.*)$ dashboard/$1 [NC,L]