Перезапись для одного условия в подпапке

1

У меня возникли проблемы с использованием правила перезаписи с файлом index.php в подпапке.

Я успешно перезаписал запросы в корне, используя

RewriteEngine on
RewriteCond %{QUERY_STRING} &id=169
RewriteRule ^index\.php$ /index.php/169? [L,R=301]

Теперь мне нужно написать некоторые файлы, например, папку SMF в той же системе, например "/SMF/index.php?topic=916.0"

Я попытался поместить файл.htaccess в подпапку

RewriteEngine on
RewriteCond %{QUERY_STRING} &topic=916.0
RewriteRule ^index\.php$ /index.php/topic916? [L,R=301]

И я попытался поместить это в свой файл.htaccess.

RewriteEngine on
RewriteBase /SMF/
RewriteCond %{QUERY_STRING} &topic=916.0
RewriteRule ^index\.php$ /index.php/topic916? [L,R=301]

Я думаю, что мне нужно пропустить что-то простое. Есть предположения? Это мой первый пост, поэтому, надеюсь, я правильно следил за всеми рекомендациями.

  • 0
    Вы тестируете с постоянными перенаправлениями. Это портит кеширование в вашем браузере, вызывая всевозможные странные невоспроизводимые ошибки. Я рекомендую изменить перенаправления на временные, затем очистить кеш вашего браузера и перезапустить браузер. Как только все заработает как положено, вы можете сделать перенаправления снова постоянными.
  • 0
    Держитесь подальше от сыра пармезан и RewriteBase . Вы можете использовать это только в подпапках, но не в htaccess. Почему входящие строки запроса содержат &topic=… а не только ?topic=… - есть ли еще один параметр GET перед ними? (Кроме того, действительно лучше обновить сгенерированные URL-адреса, чем перенаправлять их впоследствии на красивые URL-адреса. См. Также справочник: mod_rewrite, перезапись URL-адресов и объяснение «симпатичных ссылок» )
Показать ещё 1 комментарий
Теги:
.htaccess
mod-rewrite

2 ответа

0

Марио поставил меня на правильный путь. Когда у вас есть один запрос, вы должны удалить "&". & topic = 917.0 должна была быть тема = 917.0

RewriteEngine on RewriteCond% {QUERY_STRING} topic = 917.0 RewriteRule ^ index.php $/index.php/topic916? [L, R = 301]

0

В subdir у вас была перенаправлена на /index.php (выделение на /). Если вы хотите, чтобы он был относительно каталога RewriteBase/current, отбросьте ведущие "/" и перепишите на index.php...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню