我有一个项目,我必须包含在项目中。 所以..项目A是一个建立在自定义框架之上的网站,它使用这个.htaccess重写规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
第二个项目B构建在另一个自定义框架之上,我应该让它看起来像第一个项目的子文件夹。 所以我将项目B放在文件夹“子文件夹”中。项目B有自己的.htaccess,如下所示:
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule ^(。*)$ index.php?request =%{REQUEST_URI}&%{QUERY_STRING} [NE,L]
我想将它们合并到一个.htacess文件中并告诉Apache类似的东西:
如果我们有一个参数/子文件夹将所有内容重定向到子文件夹/ index.php
else将所有内容重定向到index.php
任何想法我该怎么办?
答案 0 :(得分: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]
可能需要更多调整。