次のような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のようにstackoverflowを書き換える方法
私はちょうど/shows.php?id=review-1
であった、以前は/review/1/super-baseball-2020
であるSEOフレンドリーなURLを使用するように自分のサイトを更新しました。
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に入れるために数千行であること。
私はこの機能が 'mod_rewrite'を使ってSO上で行われるのではないかと疑います。何が起こるかは、stackoverflow.com/*anything*へのリクエストが同じサーバー側のコードで処理され、そのURLを解析し、質問IDを使用してそのページのコンテンツを提供するリクエストを*ルーティング*します。質問タイトルはサーバによって無視されます。http://stackoverflow.com/questions/9168364/bouncing-fluffy-muffins – millimoose
にアクセスしてください。通常、mvcアプリケーションはすべての要求を同じスクリプト(フロントコントローラ)にルーティングします。自分自身を要求し、アクションを適切なコントローラークラスに委譲します。 – dqhendricks