У меня возникли проблемы с использованием правила перезаписи с файлом 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]
Я думаю, что мне нужно пропустить что-то простое. Есть предположения? Это мой первый пост, поэтому, надеюсь, я правильно следил за всеми рекомендациями.
Марио поставил меня на правильный путь. Когда у вас есть один запрос, вы должны удалить "&". & topic = 917.0 должна была быть тема = 917.0
RewriteEngine on RewriteCond% {QUERY_STRING} topic = 917.0 RewriteRule ^ index.php $/index.php/topic916? [L, R = 301]
В subdir у вас была перенаправлена на /index.php (выделение на /). Если вы хотите, чтобы он был относительно каталога RewriteBase/current, отбросьте ведущие "/" и перепишите на index.php...
RewriteBase
. Вы можете использовать это только в подпапках, но не в htaccess. Почему входящие строки запроса содержат&topic=…
а не только?topic=…
- есть ли еще один параметр GET перед ними? (Кроме того, действительно лучше обновить сгенерированные URL-адреса, чем перенаправлять их впоследствии на красивые URL-адреса. См. Также справочник: mod_rewrite, перезапись URL-адресов и объяснение «симпатичных ссылок» )