Mod_rewrite URL-адрес и наоборот перенаправление

1

Я не могу понять и не могу найти необходимую четкую информацию об этом.

Возможно ли даже переписать с помощью mod_rewrite localhost/mysite/index.php?a=search url в localhost/mysite/search?

Я пробовал с wikipedia http://en.wikipedia.org/w/index.php?title=Dog, затем он немедленно перенаправляется на https://en.wikipedia.org/wiki/Dog. Я хочу подобную вещь.

Я пробовал этот код на моем файле localhost.htaccess:

RewriteRule ^([a-z]+)/?$ index.php?a=$1 [NC,L]

он работал, когда я пытался ввести в браузере что-то вроде localhost/mysite/search но это только одна часть того, что я хочу. Пожалуйста, ответь, я полностью измучен.

  • 0
    IMO, самый простой способ сделать это - просто проверить $_SERVER['REQUEST_URI'] в php и, если это URL-адрес со строкой запроса, перенаправить обратно.
  • 0
    Так возможно ли это только так? И mod_rewrite просто не для этой части изменения URL? И mod_rewrite может сохранить url mysite / search только при прямом наборе?
Теги:
.htaccess
mod-rewrite

1 ответ

0
Лучший ответ

Вам нужно дополнительное правило перенаправления для перенаправления на довольно URL. Имейте это так:

RewriteEngine On

RewriteCond %{THE_REQUEST} /index\.php\?a=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=302,L,NE]

RewriteRule ^([a-z]+)/?$ index.php?a=$1 [NC,L,QSA]
  • 1
    Это сработало! Спасибо большое, теперь у меня есть шанс что-то понять!
  • 0
    Можете ли вы ответить на дополнительные вопросы, пожалуйста? Есть ли разница в использовании редиректа 302 или 301? А какой формат ссылок покажет поисковая система в результатах поиска? Будут ли они думать, что это одна страница или две?
Показать ещё 5 комментариев

Ещё вопросы

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