質問

クイック1。

私はmodの書き換えを使用しており、ほとんどの置き換えを実施しています:

  • 空のスペース = _
  • æ = ae
  • Æ = ae

など。

/ の自然な置換文字は何ですか?

ありがとう

役に立ちましたか?

解決

アンダースコアは単語文字と見なされるため、 foo_bar は2つの単語ではなく1つの単語です。ただし、ハイフンは単語文字とは見なされないため、 foo-bar は2単語です。

したがって、2つの部分を区切る場所にはハイペン-を使用し、2つの部分を接続する場所にはアンダースコア _ を使用する必要があります。分離に使用される / の場合は、ハイペン-をお勧めします。

他のヒント

  
      
  • Æ = ae
  •   

必ずしもそうする必要はありません。 UTF-8でエンコードされたバイトと同様に、非ASCII Unicode文字をURLに含めることができます。だから:

http://en.wikipedia.org/wiki/%C3%86

ブラウザでは次のように表示されます:

http://en.wikipedia.org/wiki/Æ

およびどちらかをアドレスバーに貼り付けることができます。

スペースとスラッシュは、%20および%2Fとしてエンコードできます。ただし、これらのフォームは予約文字であるため、ブラウザーでは依然としてパーセントとして表示されます。だから、彼らはかなりきれいに見えません。 %2Fには、CGIに基づいた従来のスクリプト環境がそれらを読み取れないという追加の問題があり、Apacheはデフォルトで意図的にそれらをブロックして、そのようなスクリプトが混乱してセキュリティホールを残すのを防ぎます。

だから、完全に削除してタイトルスラッグを作成します:

# % ' ( ) ? [ ] (U+00AD soft hyphen)

任意の制御文字(U + 0000A0を除くU + 0000からU + 001F、およびU + 007FからU + 00BF)。次に、次のものを置き換えます:

" $ & * + , / : ; < = > @ \ ^ (U+0020 space) (U+000A newline)

単一の下線付き。これにより、URLに%xxシーケンスを表示する必要がなくなります。 (Unicode文字の場合、%xxシーケンスは引き続き存在しますが、ユーザーには表示されません。)

必要に応じて、アンダースコアの代わりにハイフンを使用できます。検索エンジンはどちらでも問題ありません。

他の回答に対するコメントの再編集:

  

phpを使用してデータベース内の名前を検索するため。そのため、各文字を元の文字に変換する必要があります。変換しないと、一致するものが見つかりません。

ただし、その場合、キャラクターに回復不能なことはできません。変更することはできません&#8216;&#198;&#8217; &#8216; ae&#8217;には、スペースを&#8216;%20&#8217;としてエンコードする必要があります&#8216;%2F&#8217;のようにスラッシュを付けます。これにより、URLがややくなり、&#8216;%2F&#8217; ApacheおよびIISでの展開の問題が発生します。

タイトルのみでキー入力する必要がある場合は、上記で提案したように、検索するスラッグに(UNIQUEインデックス付き)列を追加して検索する必要があります。ただし、ページタイトルの名前を変更したり修正したりすることはできません。スラッグが変更され、URLが破損するためです。

これを回避する一般的なアプローチは、スラッグに加えて数値IDを含めることです(たとえば、SOがそれをどのように行うかを参照)。また、最適なSEOのためにスラッグ名が間違っている場所で301リダイレクトすることもできます。

ダッシュを使用します-Googleはこのような単語をSEOの目的のために、またはアンダースコア_で区切るので、これらは両方とも可読性に優れています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top