У меня есть сайт, который я пытаюсь разработать, и у меня есть некоторые проблемы (возможно, noob), чтобы мои правила reWrite работали правильно.У меня проблемы с RewriteRule
В основном, я использую рамки CodeIgniter для разработки сайта и как часть этого я создал RewriteRule, чтобы удалить index.php часть URL, за исключением некоторых папок для изображений и т.д.
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|shop)
RewriteRule ^(.*)$ /TESTSite/index.php/$1 [L]
Сайт первоначально имеет текущую страницу page/facilities/our-shop
, которая была очень простой страницей с несколькими ссылками на paypal, чтобы сделать очень грубую страницу магазина, так как нам нужно было быстро. Однако теперь я внедрил другой раздел (читаем OpenCart), чтобы сделать его более профессиональным и предоставить больше возможностей и т. Д. Я поместил openCart в подкаталог под названием shop
. Магазин продолжает работать правильно, поскольку я исключил /shop
из моего первоначального правила reWrite.
Однако - Моя проблема ... Я хочу старую страницу page/facilities/our-shop
для перенаправления на /shop
и, следовательно, работать, как если бы я перемещаться прямо там ..
Я попытался следующие:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|shop)
RewriteRule ^page/facilities\/our-shop$ /TESTSite/shop/$1 [R,NC,L]
RewriteRule ^(.*)$ /TESTSite/index.php/$1 [L]
И
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|shop)
RewriteRule ^page/facilities\/our-shop$ /TESTSite/shop/$1 [N]
RewriteRule ^(.*)$ /TESTSite/index.php/$1 [L]
И несколько других вариантов, но каждый раз, когда я не могу заставить его работать. Может ли кто-нибудь посоветовать, пожалуйста?
Благодаря
Спасибо Гийом, я ценю ответ и помощь. К сожалению, это, похоже, не делает то, что я ожидал. Страница все еще остается на оригинальной (старая страница). Я ввел данные в этот инструмент вы предложили, и это дает следующее: 'запрос = HTTP: // локальный/тестовый сайт/страница/Услуги/наш-shop' ' .htaccess = RewriteEngine на RewriteRule^страница/услуги/наш магазин $/TESTSite/shop/$ 1 [R = 301] RewriteCond $ 1!^(index \ .php | images | css | js | robots \ .txt | shop) RewriteRule^(. *) $ /TESTSite/index.php/$1 [L] ' ' Выходной URL = http: // localhost/TESTSite/page/facilities/our-shop' – FireEnigmaX
Отладочные данные на этом сайте показывают, что строки 1 и 2 выводят строки (строка 3 пустая), строка 4 дает: 'RewriteCo nd $ 1!^(index \.php | images | css | js | shop) \t Эта переменная не поддерживается: $ ' Является ли проблема, что у меня есть $? Должно ли это быть чем-то другим? Строка 5 говорит: «Это правило не выполнялось, потому что одно из условий не было выполнено» – FireEnigmaX
Вы правы, ответ отредактирован. Извините, забыл о вашей корневой папке. –