我需要使用HTTPs隐藏URL中的公共文件夹。
我的网站有两个输入选项:www.mysite.com和www.mysite.com.br(第一个地址重定向到第二个地址)。
我已经使用htaccess中的代码行进行了一些测试:
RewriteRule ^ public. * $ Https: //% {HTTP_HOST} / public / $ 1 [L, R = 301]
当我在浏览器中键入URL:www.mysite.com.br(这是官方地址)时它工作正常,因为它出现HTTPs,但是当我输入www.mysite.com时它不会作为HTTP输入,因为它是重定向。
如果我以这种方式输入htaccess:
RewriteCond% {HTTP_HOST}! ^ Www \. [NC]
RewriteRule ^ (. *) $ Https: //% {HTTP_HOST} / public / $ 1 [L, R = 301]
两个地址都正确输入(使用HTTPs),但" public"文件夹出现在前面:www.mysite.com.br/public /
我需要隐藏公用文件夹,因此键入两个地址我可以查看HTTP。
这是我的.htaccess
代码:
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/public/$1 [L,R=301]
# RewriteRule ^public.*$ https://%{HTTP_HOST}/public/$1 [L,R=301]
RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteCond %{HTTP:X-Forwarded-Proto} =https [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTPS} !=on
#Uncomment lines below when uploading to the live server
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)%{HTTP_HOST}/.*$ [NC]
RewriteRule \.(gif|jpg|png|tif|js|css|xls|xlsx|zip|rar|pdf|ods|ots)$
public/index.php [NC,F,L]
</IfModule>