【发布时间】:2013-04-16 00:51:58
【问题描述】:
我目前在 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$ 为每个域单独运行规则,但现在有这么多域,对每个域都执行此操作是不可行的。
希望您能提供帮助!提前致谢。
【问题讨论】:
标签: .htaccess mod-rewrite