Подстановочный субдомен для перенаправления в файл

1

Я пытаюсь перенаправить foo.bar.com на bar.com/foo.php, но я понятия не имею, с чего начать, и все остальное мне не удалось. Я пробовал много вещей здесь, в StackOverflow, но ни один из них, похоже, вообще не работает (просто различные ошибки Apache).

У меня уже есть поддомен подстановки, созданный из cPanel, но я не совсем уверен, куда идти отсюда. Является ли.htaccess даже лучшим вариантом для этого?

EDIT: Я также хочу переписать URL-адрес с bar.com/foo.php на foo.bar.com.

  • 1
    Возможно, вам следует сделать так, чтобы поддомен с подстановочными bar.com/redirect.php?subdomain=foo перенаправлялся на что-то вроде bar.com/redirect.php?subdomain=foo , а затем делал это с помощью PHP и $_GET
  • 0
    @MadsMarquart Хм, да, это, вероятно, лучший подход. Однако я не знаю, как мне получить переменную $ _GET в .htaccess.
Теги:
.htaccess

1 ответ

2
Лучший ответ

Это общее правило можно использовать в файле DOCUMENT_ROOT/.htaccess:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^(?:www\.)?domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.(.+)$ [NC]
RewriteRule ^/?$ http://%2/%1.php [L,R=302]

EDIT: Чтобы скрыть переписанный URL (внутренняя переписывание), используйте это:

RewriteCond %{HTTP_HOST} !^(?:www\.)?domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.(.+)$ [NC]
RewriteRule ^/?$ %1.php [L]
  • 0
    Это отлично работает для перенаправления и, кажется, почти полностью соответствует моим потребностям. но я на самом деле что-то упустил из своего ответа. Я также хочу переписать URL, чтобы отразить, что вы находитесь на поддомене, а не в файле. Есть какой-либо способ сделать это?
  • 0
    Спасибо! Это работало для поддоменов, но когда я действительно попытался перейти на свой корневой URL, это дало мне 404.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню