У меня есть два блога в двух разных доменах, которые я собираю на одном сайте. Я не очень хорошо знаком с администратором сервера, но я на 99% уверен, что я хочу сделать на Bluehost (поскольку они позволяют .htaccess) и с использованием mod_rewrite (или аналогичных.)Переписать URL-адреса для перенаправления и падения нулевого нуля
В настоящее время у меня есть blog1.com
и blog2.com
и почтовые URL-адреса выглядят как blog1.com/001
и blog2.com/030
. То, что я хочу, это для тех, кто входит в один из этих URL-адресов, которые будут перенаправлены на example.com/blog1/1
и example.com/blog2/30
Это означает, что мне нужно:
- Перенаправить весь домен в папку на моем новом домене
- перенаправлении попадает в URL с ведущими нулями до URL-адресов без ведущих нулей
- Это, вероятно, означает, перенаправляя
blog1.com/001
иexample.com/blog1/001
кexample.com/blog1/1
ОБНОВЛЕНО
На http://htaccess.madewithlove.be первый & второе условие соблюдается, но правила не срабатывают.
3-Totally брейки и возвращает странность: http://example.com/blog1/030log1/030
RewriteEngine On
# redirect blog1.com/030 => example.com/blog1/30
RewriteCond %{HTTP_HOST} ^(?:www\.)?(blog1|blog2)\. [NC]
RewriteRule ^0*([1-9]+)/?$ http://example.com/%1/$1 [R=301,L]
# redirect example.com/blog1/030 => example.com/blog1/30
RewriteCond %{HTTP_HOST} ^(?:www\.)?example\.com$ [NC]
RewriteRule ^(blog1|blog2)/0*([1-9]+)/?$ /$1/$2 [NC,R=301,L]
# Never use www
RewriteCond %{HTTP_HOST} ^www.(([a-z0-9_]+.)?example.com)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]]
Ну, что кажется достаточно простым. Большое спасибо за объяснение. Правила ванильного регулярного выражения? Подмножество? Superset? – lyonsinbeta
Рад, что все получилось. 'mod_rewrite' использует PCRE-код регулярного выражения. – anubhava
Я тестирую это на http://htaccess.madewithlove.be/, и правило работает (удивительно, спасибо!), Но 'example.com/a/030' не перенаправляется на' example.com/a/ 30' как ожидалось. Должно ли это быть собственным Кондом/Правилом? – lyonsinbeta