首页 文章

将两个项目中的两个.htaccess文件合并为一个

提问于
浏览
1

我有一个项目,我必须包含在一个项目中 . 所以..项目A是一个 Build 在自定义框架之上的网站,它使用这个.htaccess重写规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?url=$1 [PT,L]

第二个项目B构建在另一个自定义框架之上,我应该让它看起来像第一个项目的子文件夹 . 所以我将项目B放在文件夹“子文件夹”中 . 项目B有自己的.htaccess,如下所示:

RewriteCond%!-f RewriteCond%!-d RewriteRule ^( . *)$ index.php?request =%&% [NE,L]

我想将它们合并到一个.htacess文件中并告诉Apache类似的东西:

如果我们有一个参数/子文件夹将所有内容重定向到subfolder / index.php

否则将所有内容重定向到index.php

任何想法我该怎么办?

1 回答

  • 3

    你应该做的是:

    对于第一个项目,此htaccess文件位于文档根目录中

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?url=$1 [L]
    

    然后在第二个项目中,此htaccess文件位于 subfolder 目录中:

    RewriteEngine On
    RewriteBase /subfolder/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?request=%{REQUEST_URI} [NE,L,QSA]
    

    如果由于某种原因不适合你,我猜一个组合的htaccess文件,一个驻留在文档根目录中的文件,如下所示:

    RewriteEngine On
    
    # for 2nd project
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/?subfolder/(.*)$ /subfolder/index.php?request=$1 [NE,L,QSA]
    
    # for 1st project
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php?url=$1 [L]
    

    可能需要更多调整 .

相关问题