Переписать для набора URL?

Я хотел бы создать правило перезаписи для.htaccess, с помощью которого я могу перенаправлять подстраницы. Правило должно сделать следующее:

У меня есть сотни страниц, которые можно получить по следующему пути

http://www.domain.de/firma/stadt/adresse

Теперь я хотел бы перенаправить все эти URL на

http://www.domain.de/firma/stadt

для этого я использовал это правило:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/firma/stadt/(.+)\.(htm|php|html)$ /firma/stadt/$1 [L,R=301]
</IfModule>

К сожалению, ничего не происходит:-(Где ошибка?

Кроме того, я также хотел бы исключить отдельные URL-адреса из этого правила... Кто-нибудь может мне помочь?

С уважением

1 ответ

У вас есть проблема с логикой вашего правила перезаписи. Попробуйте это вместо этого:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^firma/stadt/(.+)$ /firma/stadt/ [L,R=301]
</IfModule>

Причины:

  1. в соответствии с вашим собственным описанием URL-адреса объектов не должны содержать "расширение имени файла" http://www.domain.de/firma/stadt/adresse, Таким образом, правило, ожидающее такого, никогда не будет соответствовать.

  2. ведущий слеш (/) в математике не имеет смысла .htaccess правила стиля, так как они работают на относительных путях.

Также вы должны позаботиться о том, где разместить это htaccess файл стиля.

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

Другие вопросы по тегам