Как переписать SEO дружественный URL, как stackoverflow

Если вы идете на URL, как показано ниже:http://stackoverflow.com/questions/9155602/ адресная строка будет обновлена доhttp://stackoverflow.com/questions/9155602/redirect-existing-file-to-different-url-using-mod-rewrite, Это не делается с помощью 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.

Ответы на вопрос(5)

Ваш ответ на вопрос