условие htaccess для перенаправления более чем одной папки - PullRequest
1 голос
/ 23 января 2012

Я хочу сделать следующее:

  • показать содержимое mydomain.com/folder1/page1.php на mydomain.com/page1
  • показать содержимое mydomain.com/folder2/page2.php на mydomain.com/page2

В папке может быть несколько страниц ...

Вы можете сделать это с одной папкой, подобной этой:

  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 голосов
/ 23 января 2012

Попробуйте добавить следующее в файл 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]
...