この 2 時間、Google と Stackoverflow のアーカイブを調べて、自分の質問に対する答えが見つかるかどうかを調べてみましたが、何も見つからないどころか、見つけすぎました! 残念ながら、301 リダイレクトの質問の山に追加する必要があります。ごめん。そして、これを見てくれてありがとう;)
基本的に、URL を単純化しようとしているブログがあります。現在、URL は次のようになっています。
http://tempertemper.net/post.php?s=2012-05-30-freeagent
私は彼らがこのように見えることを望みます:
http://tempertemper.net/2012-05-30-freeagent
RewriteRule /(.*)$ /post.php?s=$1 を .htaccess ファイルに追加しようとしましたが、それがありません。
現在、完全なファイルは次のようになっています。
<ifModule mod_rewrite.c>
DirectoryIndex index.php index.html
ErrorDocument 404 http://tempertemper.net/error.php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.tempertemper\.net$
RewriteCond %{REQUEST_URI} !cron.php
RewriteRule ^(.*)$ http://tempertemper.net/$1 [R=301,L]
</ifModule>
wwwをリダイレクトする正規化ビットの後にこれを追加しようとしました。www 以外へ:
RewriteRule ^([a-zA-Z0-9_-]+)$ post.php?s=$1
それは一種の作品です。http://tempertemper.net/2012-05-30-freeagentにリンクできますが、問題はhttp://tempertemper.net/post.php?s=2012-05-30-freeagentがまだ存在することです。検索エンジンの目には、コンテンツが重複していると思われるため、これはおそらくseoにとって悪いことです。[R=301] を新しい行の最後に追加しようとしましたが、新しいリンクが機能しなくなります。また、角括弧に ,L を入れて正規化コマンドから削除しようとしましたが、喜びはありません (L は最後のコマンドですよね…?)。
基本的に、私は post.php?s= で生成された、または生成されたすべての URL を post.php?s= のない URL に永久にリダイレクトして、それらのページに着信するすべてのリンクが既にリダイレクトされ、今後のリンクは、新しい外観の URL に直接移動します。
それが理にかなっていることを願っています…</p>
ありがとう、
マーティン:)