301 перенаправление, используя только часть оригинального URL - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь 301 перенаправить некоторый URL из моей старой структуры сайта в мою новую более простую структуру сайта.

Мои исходные URL-адреса отформатированы, например: / my-place-name-33 /, которые мне нужно перенаправить на просто / my-place-name / полностью пропуская -33

Iнадоело адаптировать решение из этой темы: htaccess - 301 перенаправление, удаляющее часть URL , но мой разделитель недостаточно силен (если это имеет смысл).У меня есть только дефис для разделения, но в большинстве случаев на сайте my-place-name уже есть дефисы.

Я пытаюсь обойти это.Любая помощь будет потрясающей.

Большое спасибо

D

1 Ответ

0 голосов
/ 13 июня 2019

Я бы сказал, что этот простой подход должен сделать то, что вы ищете:

RewriteEngine on
RewriteRule ^/?(.+)-\d+/?$ /$1/ [END]

В случае, если вы получите внутреннюю ошибку сервера (http status 500), используя приведенное выше правило, скорее всего, выиспользуйте очень старую версию сервера Apache http.В этом случае вы увидите определенный намек на неподдерживаемый флаг [END] в файле журнала ошибок http-серверов.Вы можете попытаться обновить или использовать более старый флаг [L], он, вероятно, будет работать так же в этой ситуации, хотя это немного зависит от ваших настроек.

Это правило также будет работать в конфигурации хоста http-серверов или внутри файла динамической конфигурации (файл ".htaccess").Очевидно, что модуль перезаписи должен быть загружен внутри http-сервера и включен на хосте http.Если вы используете динамический файл конфигурации, вам нужно позаботиться о том, чтобы его интерпретация вообще была включена в конфигурации хоста и чтобы он находился в папке DOCUMENT_ROOT хоста.

И общее замечание: вы всегда должны предпочитать размещать такие правила в конфигурации хоста http-серверов вместо использования файлов динамической конфигурации (".htaccess").Эти динамические конфигурационные файлы добавляют сложность, часто являются причиной неожиданного поведения, их трудно отладить, и они действительно замедляют работу http-сервера.Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).

...