我目前在 htaccess 文件中有以下内容,如果根目录中不存在该文件,该文件会将某些请求重定向到所请求域的单个文件夹。
RewriteRule ^contact/?$ ASSETS/%{HTTP_HOST}/contact.php
RewriteCond %{REQUEST_URI} !^/ASSETS/%{HTTP_HOST}/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /ASSETS/%{HTTP_HOST}/$1
RewriteCond %{HTTP_HOST} ^(www.)?%{HTTP_HOST}$
RewriteRule ^(/)?$ ASSETS/%{HTTP_HOST}/index.php [L]
当我的域文件夹命名为 /ASSETS/www.domain1.com、/ASSETS/www.domain2.com 等时,它可以正常工作
但是,我已经构建了很多代码,假设文件夹将被标记为 /ASSETS/domain1.com 等(域名,减去 www。)
我在想有一种方法可以将域名从 %{HTTP_HOST} 获取到一个新变量中并去掉 www. 部分(如 str_replace 或其他东西),但我找到的所有答案都是围绕基本重定向全部到 www。或没有 www。这是行不通的,因为我仍然希望用户从强制 www 访问该站点。版本。
我以前使用 RewriteCond %{HTTP_HOST} ^(www.)?domain1.com$ 为每个域单独运行规则,但现在有这么多域,为每个域都这样做是不可行的。
希望你能帮忙!提前致谢。