.htaccessを使用したURLの美化
-
29-09-2019 - |
質問
もっと探して ユーザーフレンドリーなURL, 、.htaccessのみをエレガントに使用して、次の両方を達成するにはどうすればよいですか?
/de/somepage
行きます /somepage?ln=de
/zh-cn/somepage#7
行きます /somepage?ln=zh-CN#7
まとめ:
/[language]/[pagefilenamewithoutextension] [オプションのアンカー#] [0-9からの数
ロードする必要があります(URLを変更せずに)
/[pagefilenamewithoutextension]?ln = [言語] [オプションのアンカー#] [0-9からの数
更新、ソリューションを提供した後:1。例外 /ZH-CN /一部のページは /cn /somepage 2. php生成されたサムネイルは、もうロードしないでください。
IMG src = "imgcpu?src = someimage.jpg&w = 25&h = 25&c = f&f = bw"
解決
RewriteRule ^([a-z][a-z](-[A-Z][A-Z])?)/(.*) /$3?ln=$1 [L]
断片のために何もする必要はありません(例: #7
)。彼らはサーバーに送信されません。それらは完全にブラウザによって処理されます。
アップデート:もし、あんたが 本当 Zh-CNを特別なケースとして扱いたい、あなたは次のようなことをすることができます:
RewriteRule ^zh-CN/(.*) /$1?ln=zh-CN [L]
RewriteRule ^cn/(.*) /$1?ln=zh-CN [L]
RewriteRule ^([a-z][a-z])/(.*) /$2?ln=$1 [L]
他のヒント
私は次のことを提案します -
RewriteEngine on
RewriteRule ^([a-z][a-z])/([a-zA-Z]+) /$2?ln=$1
RewriteRule ^([a-z][a-z])/([a-zA-Z]+#([0-9])+) /$2?ln=$1$3
最初のルールは、 /de /somepageのようなURLを処理します。言語は正確に2文字の長さである必要があり、z文字からz文字のみを含める必要があります。
2番目のルールは、 /uk /somepage#7のようなURLを処理します。
所属していません StackOverflow