Переписать для набора 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>
Причины:
в соответствии с вашим собственным описанием URL-адреса объектов не должны содержать "расширение имени файла"
http://www.domain.de/firma/stadt/adresse
, Таким образом, правило, ожидающее такого, никогда не будет соответствовать.ведущий слеш (
/
) в математике не имеет смысла.htaccess
правила стиля, так как они работают на относительных путях.
Также вы должны позаботиться о том, где разместить это htaccess
файл стиля.
Общее примечание: вы должны использовать только .htaccess
файлы стилей, если вы действительно, действительно должны. Типичная ситуация может быть, если у вас нет доступа к конфигурации http-серверов. В противном случае вы всегда должны размещать такие правила в конфигурации хоста http-серверов. .htaccess
Файлы стилей, как известно, подвержены ошибкам, их трудно отлаживать и действительно замедляют работу сервера.