Вопрос

в поисках более Userress url, Как мне достичь обоих следующих, элегантно используя только .htaccess?

/ de / handpage
собираться /somepage?ln=de

/ ZH-CN / WACKAGE # 7
собираться /somepage?ln=zh-CN#7

резюме:
/ [Язык] / [PAREFILENAMEWithOutextension] [Необязательный якорь #] [номер от 0 до 9

должен загрузить (без изменения URL)
/ [PARYFILENAMEWithOutextension]? ln = [язык] [необязательный якорь #] [номер от 0 до 9

Обновление, после обеспечения предусмотренного решение: 1. Исключение / ZH-CN / WEDSAGE ДОЛЖЕН БЫТЬ ДОСТУПИТЕЛЬНО AS / CN / CNAGE 2. PHP сгенерированные миниатюры теперь не загружаются как:
img src = "imgcpu? src = umyimage.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

Первое правило заботится о URL-адресах, таких как / de / dewAge. Язык должен иметь ровно две символы длины и должен содержать только символы A до Z.

Второе правило позаботится о URL-адресах вроде / Великобритании / WordSage # 7.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top