2017-02-19 2 views
3

Я не очень опытен с htaccess. сегодня я не могу написать .htaccess, чтобы переписать URL-адрес.htaccess правила для перезаписи подпапки в переменную GET

Что я хочу: Мой проект размещен на субдомене, например. sub.domain.com

Мой Htaccess должен управлять:

  1. sub.domain.com должен перенаправлять на www.domain.com (Перенаправление 301, это ясно)
  2. подпапок следует поместить в GET переменную, например, sub.domain.com/test к www.domain.com?var=test
  3. подкаталог /admin не должны быть переадресованы

Заранее спасибо за советы!

ответ

2

Это должно сделать это для вас:

RewriteEngine on 
RewriteCond %{HTTP_HOST} =sub.example.com 
# Following condition added to support changed requirement, see comments 
RewriteCond %{QUERY_STRING} !(?:^|&)var= 
RewriteCond %{REQUEST_URI} !^/admin/ 
RewriteRule ^(.*)$ http://www.example.com/?var=$1 [R=301,L] 

Это приведет к любой строке запроса, который был в первоначальном запросе. Если вы хотите сохранить любую строку запроса и просто добавить в нее «var = ...», добавьте QSA в флаги в конце последней строки, разделенные запятой.

+0

Спасибо @SuperDuperApps В итоге перенаправление работает, но есть одна вещь: кажется, что запрос перенаправляется несколько раз, и URL-адрес выглядит как sub.example.com/?var=&var=&var=&var=&var=&var = & var = & var = & var = & var = something –

+0

Добро пожаловать Stefan. Пожалуйста, подумайте о том, чтобы принять мой ответ с отметкой в ​​левом верхнем углу, поэтому вопрос показывает, как ответ, и я получаю немного реплики для него :) Добро пожаловать в Stack Overflow :) – SuperDuperApps

+0

Есть одна вещь, о которой говорилось выше. RewriteEngine на RewriteCond% {HTTP_HOST} = sub.domain.com RewriteCond% {REQUEST_URI}! ^/Админ/ RewriteRule^$ \/(. *) $? Е = $ 1 [QSA, R = 301, L] приводит к чему-то вроде: /? E = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = val Кажется, что страница перенаправляет несколько раз ... (Извините за то, что беспокоило вас с ней :)) –

Смежные вопросы