Переписывание URL-адресов назад и вперед с помощью mod_rewrite

Может быть, это будет очень простой вопрос, мой URL-адрес сайта ужасно написан, поэтому я хочу переписать их. Поэтому я готов активировать mod_rewrite. Вопрос заключается в следующем:

Предположим, мой url переключается с site_url/index.php?page=mypage&type=mytype на site_url/mypage/mytype , что произойдет, если обновить страницу, нужно ли в файле .htaccess site_url/mypage/mytype процесс для перезаписи?

Вам нужна комбинация переадресации и перезаписи. Проект схемы процесса перезаписи URL-адресов будет следующим:

  • Если URL содержит .php , 301/302 перенаправляет запрос в свою дружественную для SEO версию. Это изменит адрес в адресной строке браузера.
  • Если был запрошен дружественный URL-адрес SEO, перепишите его в свою версию PHP. Это не изменит адрес в адресной строке браузера.

Вот очень простой пример правил перезаписи, которые делают оба перечисленного:

 # # redirect /index.php?page=somepage&type=sometype to friendly url # RewriteCond %{THE_REQUEST} /index\.php RewriteCond %{QUERY_STRING} page=(\w+)&type=(\w+) RewriteRule ^index\.php$ /%1/%2? [R,L] # # rewrite /somepage/sometype to index.php # RewriteRule ^(\w+)/(\w+)$ index.php?page=$1&type=$2 

В .htaccess вы должны сделать вперед, который отображает …

 ^/(mypage)/(mytype) to index.php?page=$1&type=$2 

Но обратное нужно оставить в покое. Поэтому прямой запрос на site_url/index.php?page=mypage&type=mytype будет просто передан как есть.

Итак, обновление ничего не изменит.