mod_rewrite перенаправление субдомена с комбинацией подпапок - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть этот код в моем .htaccess для обработки поддоменов (http://foo.mydomain.com)

RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC]
RewriteRule ^(.*)$ filter.php?type=country&country=%1 [L]

Проблема в том, что мне нужно делать, если, например, кто-то помещает ссылку, подобную этой:

http://foo.mydomain.com/bar

Я хочу перенаправить это на другую страницу, отличную от filter.php (скажем, otherpage.php) из предыдущего кода, я пробовал следующий код, но он не работает

RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com/([^/]+) [NC]
RewriteRule ^(.*)$ otherpage.php?type=country&country=%1 [L]

ни следующий:

RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC]
RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteRule ^(.*)$ otherpage.php?pname=$1 [L]

Ссылка всегда разрешается с первым правилом, которое я написал.

1 Ответ

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

Добавьте условие к вашей первой группе, которое проверяет наличие пустого REQUEST_FILENAME. Это предотвратит совпадение, когда есть что-то кроме пустого доменного имени.

RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC]
RewriteCond %{REQUEST_FILENAME} ^/?$
RewriteRule ^(.*)$ filter.php?type=country&country=%1 [L]
...