htaccess 301 для нескольких доменов и файлов с пробелами - PullRequest
0 голосов
/ 27 октября 2011

У меня есть клиент, который запускает успешный набор веб-сайтов, которые он создал с помощью необработанного HTML. Теперь он чувствует, что это должно быть на базе данных.

У меня есть две проблемы, и мне было интересно, есть ли регулярное выражение, чтобы приспособить их обоих.

Я хочу, чтобы его сайт работал в одном месте, но использовал несколько доменов.

Также он назвал все свои файлы пробелами.

Так, например ...

Я управляю сайтом на www.maindomain.com

Кто-то входит www.domain1.com/first category.html

и я хочу переадресацию 301 на www.domain1.com/categories/first-category

или кто-то входит www.domain2.com/second category.html

и я хочу переадресацию 301 на www.domain2.com/catergories/second-category

Это достижимо? У моего клиента тысячи таких страниц, поэтому мне не нужен огромный файл htaccess с отдельными перенаправлениями 301

1 Ответ

1 голос
/ 27 октября 2011

Используя mod_rewrite, вам понадобится 2 набора переписываний.Сначала измените пробелы на дефисы (-), которые ВНУТРЕННЕГО перенаправляют:

RewriteCond %{REQUEST_URI} "\ "
RewriteRule ^(.*)\ (.*)$ $1-$2 [L]

Это будет повторяться до тех пор, пока не останется больше пробелов, поэтому «www.domain1.com/first category.html» переписывается внутренне как"www.domain1.com/first-category.html".Затем мы удаляем «.html» в конце и вставляем «/ Categories /» в начале:

# We need to make sure it has no spaces
RewriteCond %{REQUEST_URI} !"\ "
# and check that the request ends with ".html"
RewriteCond %{REQUEST_URI} \.html$
RewriteRule (.*).html /categories/$1 [L,R=301]

Это затем перенаправляет (с 301) внутреннее «www.domain1.com/first-category.html "запрос к" www.domain1.com/categories/first-category ".Теперь вопрос в том, имеет ли отношение «/ category /» к исходному URL, оканчивающемуся на « category .html»?Если это так, то вам понадобятся некоторые дополнительные изменения.

...