Поиск и замена частей URL через apache htaccess RewriteRule

Я хотел бы переписать URL-адреса, например:

http://www.mydomain.tld/en/component/mycomponent/singlearticle/16-core/219-checked.html

to

http://www.mydomain.tld/en/articles/bycategory/16-core/219-checked.html

Означает, что часть «component/mycomponent/singlearticle» должна стать «articles/bycategory», но у меня есть проблемы с созданием правила перезаписи для моего .htaccess, которое охватывает это.

*Примечание: mod_rewrite включен (RewriteEngine включен)*


person BastianW    schedule 01.07.2012    source источник


Ответы (1)


Если вы хотите переписать только этот URL-адрес, вам это нужно.

RewriteRule ^en/component/mycomponent/singlearticle/16-core/219-checked.html$ http://www.mydomain.tld/en/articles/bycategory/16-core/219-checked.html [R=301,L]

Изменить:

Тогда попробуйте это:

RewriteEngine On
RewriteBase /
RewriteRule ^en/component/mycomponent/singlearticle/(.*)$ http://www.mydomain.tld/en/articles/bycategory/$1 [R=301,L]

Тогда все, что было за одной статьей, будет перенаправлено на другую страницу. Возможно, вы можете попробовать это. Я не могу проверить это здесь на лету.

person René Höhle    schedule 01.07.2012
comment
не только URL-адрес, есть и другие, один URL-адрес был бы легким, но у меня проблемы с поиском правила перезаписи для частей URL-адреса. - person BastianW; 02.07.2012
comment
Я проверил это сейчас для вас. Это работает. Возможно, вам нужно установить RewriteBase в /. - person René Höhle; 02.07.2012
comment
Вы правы... это работает с [L] в конце. Я думаю, что проблема из того, что я пробовал, заключалась в том, что одно правило, которое я создал, срабатывало, а затем также применялось другое ... тогда [L] исправил это. - person BastianW; 02.07.2012
comment
о, извини, чувак: D, ты должен написать [R = 301, L], это лучше для Google. - person René Höhle; 02.07.2012
comment
Я вырезал это из своего ответа выше, чтобы другие не запутались с кодом перенаправления HTTP, если наткнулись на это. Но да, вы абсолютно правы. Спасибо чувак :-) - person BastianW; 02.07.2012