Как настроить поддомен с помощью файла .htaccess?

Как настроить серверное перенаправление (rewrite rules) для домена game.site.com таким образом, чтобы ссылки открывались как game.site.com, game.site.com/maincraft, game.site.com/maincraft/, game.site.com/maincraft/step1/, game.site.com/maincraft/?id=1&g=2 и game.site.com/step1/?id=1&g=2 без добавления '/' в конце адреса?
  • 14 июля 2024 г. 15:02
Ответы на вопрос 2
Для настройки поддомена с помощью файла .htaccess нужно добавить соответствующие правила перенаправления. 

Для настройки серверного перенаправления (rewrite rules) для поддомена game.site.com без добавления '/' в конце адреса можно использовать следующий код в файле .htaccess:

```apache
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /$1/ [L,R=301]

RewriteCond %{HTTP_HOST} ^game.site.com$
RewriteCond %{REQUEST_URI} !\.\w+$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /$1/ [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^maincraft/(.*)$ /$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^step1/(.*)$ /$1 [L,QSA]
```

Этот код добавляет слэш в конце адреса, если его нет, и перенаправляет запросы для поддомена game.site.com таким образом, чтобы конечный URL не имел слэша в конце.
1) зачем Вам имя сайта в условиях ? Не вижу тут задачи для которой это требуется. 
2) почитайте про единую точку входа и роутинг. В виде отдельных php файлов давно не пишут.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

Не старееющая классика. Все чего нет как физического файла на вход скрипта.
переменная path тут даже не нужна. Можно через $_SERVER все нужное получить.
3) для однозначности со слешом в конце попробуй добавить
DirectorySlash Off

ок. Вспомним 90е- начало 00х
/maincraft - предпалагаю, что должно получиться game.php?slug_game=maincraft
RewriteRule ^/maincraft$ /game.php?slug_game=maincraft [NC,L,QSA]


Ну так и напиши как отдельные регулярки все свои случаи.
Главное, чтобы у тебя подпапок физических не было
Похожие вопросы