当.htaccess
文件托管在public_html
目录中时,我的public_html
文件会破坏子域以及主域。这与没有将默认值交换到用户根目录(在public_html
之上)的较旧的主机有关。
似乎更新的主机(例如运行更高版本的cPanel的Hostgator)现在将子域放置在与public_html
相同的级别上,而不是放置在其中。我喜欢这个,因为主站点的htaccess不会影响它!
不幸的是,客户端的主机较旧,并且将子域强制置于Options -Indexes
RewriteEngine On
# This goes first!
# Force www prefix
RewriteCond %{HTTP_HOST} !^(www\.)(.*) [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
# This goes second!
RewriteCond %{HTTPS} !=on
# Exclude SSL validation paths
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]
{32}\.txt(?:\ Comodo\ DCV)?$
# Force HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
内。
这是我的htaccess:Gist
https://www.images.example.com/images.example.com/
我认为相关区域是第7和8行。
它的作用:
它重定向到这样的URL并给出500错误:static
我不需要任何硬编码的参数(域名或子域名)。