php - 使用 PHP 编辑 .htaccess

标签 php .htaccess mapping dns edit

我有一个将域映射到文件夹的 .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。这是一个如何使用它的示例:

  1. 将以下行添加到您的 httpd.conf 文件中:

    RewriteMap domainMap txt://path/to/domain-dir.txt
    
  2. 像这样创建一个文本文件作为 /path/to/domain-dir.txt:

    sub1 /subdir1
    sub2 /foodir2
    foo /bar
    
  3. 在您的 .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/

相关文章:

php - htaccess - 可以阻止目录查看,但文件仍然可以直接查看

php - 使用PHP存储点击的链接数据并将其传输到新页面

php - 如何从对象获取属性(PHP)

css - 如何检查是否启用了杠杆浏览器缓存

apache - 从网站 URL 中删除 index.php

json - Elasticsearch 映射错误映射

java - 将 <Object, AtomicInteger> 映射到关联数组

每个应用程序映射的 Coldfusion 随机失败

php - 我们怎么能在 array_walk 中得到错误的返回呢?

php - 如何使用codeigniter 4框架在mysql数据库中插入多行?