возникли проблемы с написанием перенаправлений htaccess

#apache #.htaccess #redirect

#apache #.htaccess #перенаправление

Вопрос:

У меня возникли проблемы с написанием правил перенаправления в файле htaccess моего сайта.

В принципе, я хочу написать два правила:

1 — Когда я пишу базовый URL, например http://www.example.com , я хочу, чтобы он автоматически перенаправлял пользователя http://www.example.com/someDirectory .

2 — Однако, когда я пишу http://www.example.com/Admin , я хочу, чтобы он перенаправлял пользователя на http://www.example.com/Admin .

Вот что мне удалось сделать до сих пор:

   # This allows you to redirect index.html to a specific subfolder
    Redirect http://www.example.pt http://www.example.pt/MainFolder
 # This allows you to redirect index.html to a specific subfolder
    Redirect http://www.example.pt/Admin http://www.example.pt/Admin
  

Однако это не работает… Есть идеи, как это сделать?

Ответ №1:

Попробуйте сделать это так,

Когда нет запроса для определенного файла или каталога, он перенаправит вас на ваш каталог, указанный в правиле, а в остальном он будет работать без какого-либо правила.

Пожалуйста, проверьте.

 RewriteEngine on
RewriteCond %{REQUEST_URI} ^$
RewriteRule ^ %{HTTP_HOST}/someDirectory [R,L]
  

Комментарии:

1. не удается заставить его работать должным образом! в вашем /someDirectory я помещаю свою /MainFolder , но нужно ли мне указывать что-нибудь еще?

2. ошибки нет. он просто не перенаправляет меня! веб-сайт saudadebox.pt . всякий раз, когда я вхожу saudadebox.pt или www.saudadebox.pt , я хочу, чтобы он перенаправил меня на www.saudadebox.pt/SaudadeBox . И всякий раз, когда я вхожу saudadebox.pt/Admin или www.saudadebox.pt/Admin , я хочу, чтобы он перенаправил меня на www.saudadebox.pt/Admin

Ответ №2:

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

 #Rewrite everything to subfolder
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/MainFolder
RewriteCond %{REQUEST_URI} !^/Admin
Rewriterule ^(.*)$ MainFolder/$1 [L]