用于重定向多个文件夹的htaccess条件

时间:2012-01-23 00:45:41

标签: .htaccess conditional-statements

我想做以下事情:

  • 在mydomain.com/page1上显示mydomain.com/folder1/page1.php的内容
  • 在mydomain.com/page2上显示mydomain.com/folder2/page2.php的内容

文件夹中会有多个页面......

您可以使用以下文件夹执行此操作:

  RewriteRule ^(.*)/$ folder1/$1.php [L]

使用2个文件夹时,以下操作无法正常工作,因为第一个规则会将第2页搞砸:

 RewriteRule ^(.*)/$ folder1/$1.php [L]
 RewriteRule ^(.*)/$ folder2/$1.php [L]

所以我需要一个重写条件,认为以下方法可行,但事实并非如此:

 RewriteCond %{REQUEST_URI} !(.*)/folder2/(.*)$
 RewriteRule ^(.*)/$ folder1/$1.php [L]

 RewriteCond %{REQUEST_URI} !(.*)/folder1/(.*)$
 RewriteRule ^(.*)/$ folder2/$1.php [L]

有人能帮我找到正确的条件,以便一条规则不会与另一条规则混乱吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

尝试将以下内容添加到您网站根目录中的htaccess文件中。

RewriteEngine on
RewriteBase /

#check if file exists in folder 1
RewriteCond        folder1%{REQUEST_URI}\.php -f [NC]
RewriteRule ^(.*)$ folder1/$1.php [L]

#otherwise check if file exists in folder 2
RewriteCond        folder2%{REQUEST_URI}\.php -f [NC]
RewriteRule ^(.*)$ folder2/$1.php [L]