URL переписать с помощью htaccess - PullRequest
       0

URL переписать с помощью htaccess

0 голосов
/ 12 сентября 2011

Я кратко сообщу вам, что я делаю и где мне понадобится ваша помощь.

Я создаю блог-хостинг. Я закончил CMS, и теперь я делаю пользовательские страницы.

Моя идея состояла в том, чтобы создать правила .htaccess, чтобы у каждого пользователя и владельца блога был собственный URL-адрес блога, например: XXX.bloghost.com, где XXX - это имя блога или имя владельца блога.

Просто упомяну, что я буду использовать еще 2 параметра в URL, так что вот примеры URL:

XXX.bloghost.com -> www.bloghost.com/index.php?user=XXX

XXX.bloghost.com/NEWS -> www.bloghost.com/index.php?user=XXX&category=NEWS

XXX.bloghost.com/NEWS/SAMPLE -> www.bloghost.com/index.php?user=XXX&category=NEWS&post=SAMPLE

Вот мой текущий файл .htaccess (ОБНОВЛЕНО):

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.bloghost.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).bloghost.com [NC]
RewriteRule (.*) %2/$1 [L]

RewriteRule (.+)/(.+)/(.+) blog.php?blog_id=$1&category=$2&post=$3 [L,QSA]
RewriteRule (.+)/(.+) blog.php?blog_id=$1&category=$2 [L,QSA]
RewriteRule (.+) blog.php?blog_id=$1 [L,QSA]


ErrorDocument 404 /error.php

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

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

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011

Сначала вы должны настроить субдомены для подстановочного знака

ServerAlias www.domain.com domain.com *.domain.com

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

RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+).domain.com [NC]
RewriteRule (.*) %2/$1 [QSA]

Итак, после этой страницы http://some.domain.com/news перейдет к http://www.domain.com/some/news И затем обработайте URL как обычно (только для примера):

RewriteRule (.+)/(.+)/(.+) index.php?user=$1&category=$2&post=$3 [L,QSA]
RewriteRule (.+)/(.+) index.php?user=$1&category=$2 [L,QSA]
// and so on

Но я думаю, что вторая часть должна быть обработана с помощью системы маршрутизации php.

0 голосов
/ 12 сентября 2011

@ atma уже обработала реальное перенаправление. Просто быстрое дополнение для обработки ошибок в .htaccess:

ErrorDocument 404 /error.php

Легко! Любая ошибка 404 будет направлена ​​на bloghost.com/error.php. Замените ваш путь и страницу / скрипт для отображения ошибок.

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