0

以下のRewriteRuleを使用して、.htaccessを使用してSEOフレンドリーなURLを実装しようとしています

RewriteRule ^n/article/([a-zA-Z0-9]+)/$ article.php?title=$1

実際のURLはこんな感じ

http://localhost/n/article.php?title=this-is-the-first-news-article

しかし、私はそれを次のようにしたい:

http://localohst/n/article/this-is-the-first-news-article

上記の RewiteRule を適用すると、目的の URL に変更されません

4

3 に答える 3

2

これでうまくいくはずです。n がありません。ただし、タイトルという単語が必要な理由はわかりません。

RewriteRule ^n/article/title/([a-zA-Z0-9]+)/$ article.php?title=$1
于 2013-07-25T12:35:40.833 に答える
1

最初にクエリ文字列をキャプチャする必要があります。RewriteRule ではクエリ文字列を無視するため、これを行うことはできません。ここでは[R]、リダイレクトに使用しています。これで問題なく、古い URL がリンクとしてどこかに保存されている可能性がある場合は、[R=301]. ただし、サイトからすべての古いスタイルのリンクを必ず削除してください (これには、私たちが書き直している以前のリンク形式が含まれています)。そうすれば、リンクを更新しないことで罰せられることはありません。

RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} title=([^&]+)
RewriteRule ^n/article.php n/article/%1? [R,L]

サイトがオリジナルから機能するために書式設定が必要な場合は、最初のルールの後にこれが必要になる場合もあります。このルールは、URL をエンド ユーザーに表示せずに元の URL に静かにリダイレクトします。

RewriteRule ^n/article/(.*) n/article.php?title=$1 [L]
于 2013-07-25T13:47:27.233 に答える
0

RewriteRule ^n/article/title/([a-zA-Z0-9]+)/$ article.php?title=$1 になります。

于 2013-07-25T12:39:29.063 に答える