** СМОТРЕТЬ ОБНОВЛЕНИЕ НИЖЕ *****

Мой основной сайт домена должен обслуживаться из подкаталога на моем сервере, который называется так же, как домен, так что, вероятно, будет непросто читать в этом грязном блоке моего webroot .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /

  # remove www
  RewriteCond %{HTTP_HOST} ^www\.(.+)$
  RewriteRule ^.*$ %1 [NC,QSA,R=301]

  #RewriteCond %{ENV:REDIRECT_STATUS} . [OR]
  RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
  RewriteRule ^my-web.agency/ - [L,R=404]
  RewriteRule !^my-web.agency/ my-web.agency/%{REQUEST_URI} [NC,QSA]
</IfModule>

Я просто работал над этим так долго, изменяя правила и структурируя, что это искажение - то, что я получаю в настоящее время.

Www. ОСТАЕТСЯ, так что немного убрать его совсем неэффективно.

!^ my-web.agency/ rule действительно действительно эффективно обслуживает веб-сайт. ОДНАКО, моя следующая попытка рендеринга 404, если подкаталог включен в URI FAILS.

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

***** ОБНОВЛЕНИЕ:** Теперь у меня есть

# remove www, externally for consistent domains (successful)
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule .* http://[[percent]]1/$0 [NS,L,R=301,QSA]

RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteCond %{REQUEST_URI} ^my-web.agency
RewriteRule ^(.*)$ - [R=404,L,NC]

RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteCond %{REQUEST_URI} !^my-web.agency
RewriteRule ^(.*)$ /my-web.agency/$1 [L,NC,QSA]

Это действительно делает WWW. исчезнуть при попытке. Но все ВНУТРЕННИЕ ССЫЛКИ ВСЕ ЕЩЕ ВКЛЮЧАЮТ подкаталог, который должен быть скрыт (например, внутренние ссылки читаются как « http://my-web.agency/my-web.agency/somepage »), и доступ к страницам с подкаталогом в URI все еще работает; Я бы предпочел вернуть 404.

DocumentRoot или RewriteBase кажутся логичными возможными решениями, если бы я только мог понять правильную реализацию. ([[percent]] исходящий http:// в 1-ом RewriteRule - разрешить его через редактор без выдачи ошибки; просто указывает % .)

0