Если вы перейдете по ссылке, подобной следующей: /6474287/perenapravit-suschestvuyschii-fail-na-drugoi-url-ispolzuya-modrewrite
адресная строка будет обновлена до /6474287/perenapravit-suschestvuyschii-fail-na-drugoi-url-ispolzuya-modrewrite
. Это не делается с помощью JavaScript и не требует жесткого обновления, я думаю, что это сделано с помощью mod_rewrite; однако как он узнает заголовок статьи без обработки на стороне сервера с помощью php?
Я только что обновил свой сайт, чтобы использовать оптимизированные для SEO URL-адреса, раньше он был /shows.php?id=review-1
, а теперь /review/1/super-baseball-2020
. Текст в конце на самом деле не имеет значения, когда дело доходит до моего переписывания:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9]+)/([0-9]+)/([a-z0-9-]+)?/?$ /shows.php?id=$1-$2 [L,NC]
Мой текущий способ убедиться, что Google не ударил меня за дублированный контент, и что закладки правильно перенаправляются, выглядит следующим образом:
RewriteCond %{THE_REQUEST} ^GET\s/shows\.php\?
RewriteCond %{QUERY_STRING} (?:^|&)id=review-1(?:&|$) [NC]
RewriteRule ^ /review/1/super-baseball-2020/? [R=301,L,NC]
RewriteCond %{THE_REQUEST} ^GET\s/shows\.php\?
RewriteCond %{QUERY_STRING} (?:^|&)id=review-2(?:&|$) [NC]
RewriteRule ^ /review/2/aero-fighters-2/? [R=301,L,NC]
RewriteCond %{THE_REQUEST} ^GET\s/shows\.php\?
RewriteCond %{QUERY_STRING} (?:^|&)id=review-3(?:&|$) [NC]
RewriteRule ^ /review/3/aero-fighters-3/? [R=301,L,NC]
.... and so on ....
Это решение очень недальновидно и содержит тысячи строк в моем .htaccess.