.htaccess заменяет части URL-адреса

#.htaccess #apache2

#.htaccess #apache2

Вопрос:

Я хочу, чтобы перенаправление htaccess 301 выполняло следующее:

 http://mysite.com/article.php?id=123
  

Для

 http://mysite.com/123
  

Другими словами, чтобы удалить часть «article.php?id»

Любая помощь была бы очень признательна.

Ответ №1:

Используйте этот код в вашем файле .htaccess:

 Options  FollowSymlinks -MultiViews
RewriteEngine On

RewriteCond %{QUERY_STRING} ^id=([^amp;]*)(amp;|$) [NC]
RewriteRule ^article.php$ /%1? [L,R=301,NC]
  

Важно использовать ? в конце, чтобы избавиться от исходной строки запроса.

Ответ №2:

Вы можете сделать это с помощью mod_rewrite , если это включено:

 RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=([0-9] )$
RewriteRule ^article.php$ http://%{HTTP_HOST}/%1 [L,R=301]
  

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

1. извините, я забыл, что это был php?id= а не php?=