mod_rewrite для обслуживания новой версии существующих файлов - PullRequest
1 голос
/ 17 февраля 2011

Я только что сделал центральный динамический скрипт, чтобы заменить грязную папку, полную статических файлов.Тем не менее, я хотел бы сохранить старые URL без необходимости удалять эти файлы.Позвольте привести пример:

У меня есть следующие файлы:

  1. / oldpages / projekt1 / index.html
  2. / oldpages / projekt2 / index.html
  3. / oldpages / projekt3 / index.html

Фактические новые URL:

  1. / newscript / script.php? Name = projekt1
  2. / newscript / script.php? Name = projekt2
  3. / newscript / script.php? Name = projekt3

Правило перезаписи:

Options -MultiViews -Indexes +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^oldpages/([A-Za-z0-9_\-]+)/(index.html)?$ /newscript/script.php?name=$1 [L,QSA]

Однако всякий раз, когда я пытаюсь получить доступ к http://mydomain.com/oldpages/projekt3/index.html, он просто возвращает старые файлы.После поиска в Google все говорили, что виновником могут быть множественные просмотры, но, видимо, это не исправляет это.

Правило работает, если на сервере не существует каталога, отлично работает следующее:

Options -MultiViews -Indexes +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^newpages/([A-Za-z0-9_\-]+)/(index.html)?$ /newscript/script.php?name=$1 [L,QSA]

И http://mydomain.com/newpages/projekt3/index.html получает нужную страницу.

Что я делаю не так?

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 17 февраля 2011

Если .htaccess в /oldpages имеет RewriteEngine On, это переопределяет все правила в .htaccess в /.

...