htaccess-поддомен в качестве параметра GET


В моем файле .htaccess уже есть следующее:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

Но я хочу добавить такое правило:

RewriteCond %{HTTP_HOST} ^(.+).example.com
RewriteRule ^(.*)% http://example.com/?name=%1&type=$1 [R,L]

Но без привязки к example.com и он должен работать на любом домене.

1 3

1 ответ:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www)\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.com [NC]
RewriteRule (.*) http://www.%2.com/?name=%1 [R=301,L]

Переписывает http://subdomain.domain.com на http://www.domain.com/?name=subdomain

Чтобы объединить их, попробуйте что-то вроде этого

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^(www)\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.com [NC]
RewriteRule (.*) http://www.%2.com/index.php?route=$1&name=%1 [R=301,L]

Это перенаправит http://subdomain.domain.com/hello-world на http://www.domain.com/index.php?route=hello-world&name=subdomain