Перенаправить страницу в root, но сохранить параметры в URL

#php #javascript #.htaccess #mod-rewrite

#php #javascript #.htaccess #mod-переписать

Вопрос:

У меня довольно сложная проблема (для меня), поэтому мне нужно обратиться к вам, ребята 🙂 Всегда был отличным и быстрым источником помощи.

Справочная информация: У меня есть веб-сайт, где домашняя страница представляет собой один большой перетаскиваемый экран (www.example.com /) где все подстраницы имеют тизерный формат. Если вы нажмете на тизер (www.example.com/pages/page1 ) откроется лайтбокс jquery с iframe и представит эту страницу. Это отлично работает.

Проблема: Проблема в том, что, как всегда было с iframes, если кто-то переходит на подстраницу напрямую (www.example.com/pages/page1 ), возможно, через индексированный поиск Google он не увидит iframe и большой перетаскиваемый экран за ним.

Вопрос: мне нужен скрипт, который, прежде чем что-либо произойдет, перенаправляет URL с большим количеством частей, затем root на корневую страницу и добавляет части в виде другого запроса, чтобы я мог считывать их с помощью javascript или чего-то еще и запускать iframelightbox для каждой руки.

Подход: так

 www.example.com/pages/page1
  

необходимо стать

 www.example.com?vars=/pages/page1
  

или что-то подходящее.

я думаю, что это возможно с помощью mod_rewrite в моем htaccess, но я не знаю как.

Я надеюсь, что это каким-то образом понятно 🙂 я старался изо всех сил.

Ответ №1:

 RewriteRule ^(. )$ /?vars=$1
  

Должно сработать.

Не ставьте * вместо , иначе это может закончиться бесконечным циклом.

Комментарии:

1. хорошо, я использовал это, но получил странный результат. мне все еще нужна секунда перезаписи? мой код теперь выглядит следующим образом RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteRule ^(. )$ /?vars=$1

2. извините за беспорядочную разметку, я не знаю, как ставить разрывы строк в комментариях.

3. вы не можете сохранить RewriteCond RewriteRule . /index.php [L] поскольку это отрицало бы нужное вам поведение, если только запрашиваемые вами страницы на самом деле не находятся pages/page1 в вашей файловой системе. Но в противном случае будет сказано: не каталог, в который я переписываю index.php а затем пропустить последний RewriteRule.

4. извините, что больше не отслеживаю, ваше Правило вроде как работает, но потом открылась тысяча новых проблем, и я пока снял проблему. в любом случае спасибо за помощь 🙂 я все равно проголосовал за вас, потому что думаю, что это был бы правильный путь.