Хорошо, я немного оглянулся, и я не могу найти ответ.Очень продвинутый .htaccess
Теперь я не прошу вас дать мне только блок кода и сказать «это исправление», я хотел бы, чтобы вы объяснили, как вы это сделали, что вы придумали и т. Д. Мне бы хотелось узнать больше об этом, и единственный способ узнать - пример.
Теперь то, что мне нужно сделать, это:
В настоящее время мой блог (слово пресса идет цифра, потому что они владеют миром), находится на корневом каталоге. Итак, мои сообщения выглядят так: http://localhost/hello-world
. Просто пример.
Однако, я только что расширил свой сайт с помощью специального скрипта PHP, использующего Code Igniter. Мне нужно поместить скрипт Code Igniter в корневой каталог и переместить блог в/main/or/blog /. Я не хочу избавляться от своего блога, но я не хочу, чтобы Google пересматривал каждый отдельный блог, или Google приводит к неправильным сообщениям. Что еще более важно, я не хочу сидеть здесь часами и часами, создавая перенаправляющие URL-адреса для каждого сообщения в блоге (их сотни).
Теперь мне нужно перенаправить перенаправление 301.
У меня проблема, с которой я столкнулся.
мне нужно иметь это в .htaccess:
RewriteEngine on
RewriteCond $1 !^(index\.php|admin|css|img|js|main|favicon.ico)
RewriteRule ^(.*)$ index.php/$1 [L]
Это удаляет уродливые LOCALHOST/index.php/контроллер/контроллер-функции/
Но мне нужно, чтобы сделать мой .htaccess редирект все на /, но НЕ запрограммированные URL-адреса, которые у меня уже есть.
предустановку URL-адреса заданы параметры у меня есть через код воспламенитель являются:
/details/
/register/
/city/
/search_process/
/login/
/logout-success/
/login-success/
/logout/
/login/
/manage/
/panel/
Итак, по существу ..
локальный/привет-мир/придется 301 редирект на локальный/главная/привет-мир
и
локальный/(любой-оф-выше)/бы НЕ перенаправлять/основной/или/блог/
Также, если вы заметили в текущем .htaccess, я допустил некоторые вещи, например/admin// css// img// js/(/ main /), и favicon.ico (потому что это выглядит потрясающе)
Пожалуйста, изучите меня! (Как часто вы это слышите?: P)
CREDIT GOES TO LAWRENCE CHERONE!
Он изначально дал мне ответ, и между тем и сейчас я думаю, что я сделал опечатку в первый раз и случайно потерял код, и он не работал во второй раз после копирования/вставки я впервые набрал его, чтобы узнать его).
Итак, здесь идет модифицированное рабочее решение. Я полностью отдаю должное Лоуренсу Череу (парню, у которого есть принятый ответ на этот вопрос), потому что он помог мне разобраться в этом, и в конечном итоге я не смог бы получить это рабочее решение без него. Еще раз спасибо за бутон!
RewriteEngine on
RewriteCond $1 !(panel|manage)
RewriteRule ^(.*)$ http://localhost/choosefitness/main/$1 [R=301,L]
RewriteEngine on
RewriteCond $1 !^(index\.php|admin|css|img|js|less|favicon.ico)
RewriteRule ^(.*)$ index.php/$1 [L]
Это просто заявляет, что до тех пор, как первый аргумент http://localhost/choosefitness/first-argument
нет/панели/или управления. Он должен 301 перенаправить на/main/(должен был предоставить полный URL-адрес для 301 перенаправления, а не только основной/$ 1)
Тогда он заявляет, что любой запрос, сделанный на admin css img js lss или favicon.ico, следует игнорировать. else должен быть сделан на index.php (это удаляет index.php из url в воспламенителе кода)
Я не знаю, почему это работает, я просто знаю, что это так. Однако я не тестировал его полностью, но я считаю, что у меня есть доступ к/css без перенаправления beign, вам нужно добавить | css в первый RewriteCond. Однако сервер может получить доступ к файлам css, не требуя этого.
Примечание. ЛЮБЫЙ URL-адрес, не содержащийся в первом RewriteCond, не работает и будет отправлен в/main /. Таким образом, http: // localhost/choosefitness/css не будет работать, потому что это не в первом RewriteCond. Во-вторых, если аргумент URL не входит во второе условие, он не будет проигнорирован и будет действовать в отношении index.php. Таким образом, не имеет | css во втором RewriteCond, но его в первом RewriteCond будет действовать так, как если бы http: //localhost/choosefitness/index.php/css, и действовать как аргумент Ignry Code. –