Sam*_*ian 5 .htaccess mod-rewrite
我目前在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]
Run Code Online (Sandbox Code Playgroud)
当我的域文件夹命名为/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 $单独运行每个域的规则,但现在有很多域,为每个域执行它是不可行的.
希望你能帮忙!提前致谢.
Ola*_*che 11
您可以使用捕捉所需要的主机部分RewriteCond,并把它作为%1在RewriteRule
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^$ ASSETS/%1/index.php [L]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31559 次 |
| 最近记录: |