我有一个将域映射到文件夹的 .htaccess。
RewriteEngine On
RewriteBase /
# redirect mapped domain
ReWriteCond %{HTTP_HOST} joshblease.uk.to
ReWriteCond %{REQUEST_URI} !gme-index/
ReWriteRule ^(.*)$ gme-index/$1 [L]
有没有办法使用 PHP 编辑/添加额外的域映射到文件?
简单地说,我想获取 .htaccess 文件的内容并使用 PHP 脚本添加到其中。
最佳答案
如以上评论之一所建议,最好使用 RewriteMap对于您的情况,而不是尝试直接从 PHP 代码编辑 .htaccess。这是一个如何使用它的示例:
将以下行添加到您的 httpd.conf 文件中:
RewriteMap domainMap txt://path/to/domain-dir.txt
像这样创建一个文本文件作为
/path/to/domain-dir.txt
:sub1 /subdir1 sub2 /foodir2 foo /bar
在您的 .htaccess 文件中添加这些行:
Options +FollowSymLinks -MultiViews RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC] RewriteRule ^$ ${domainMap:%1} [L,R]
实际上,所有这一切意味着将这些重定向就位:
sub1.domain.com/=> sub1.domain.com/subdir1
sub2.domain.com/=> sub2.domain.com/foodir2
foo.domain.com/=> foo.domain.com/bar
优点:有了这个设置,您可以根据需要从 php 编辑或重新创建文件 /path/to/domain-dir.txt
在不打开巨大安全漏洞的情况下允许 php 代码直接编辑 .htaccess。
关于php - 使用 PHP 编辑 .htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8899805/