У меня есть общий хостинг, на котором я хочу разместить несколько сайтов. С этой целью и для ясности я перенаправил свой основной домен (например, www.mydomain.com) в папку (т.е. /mydomain.com/). Однако я хочу запретить прямой доступ к этой папке (www.mydomain.com/mydomain.com/) с URL-адреса с ошибкой 404. (не найдено).
Это .htaccess в корневом каталоге:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/mydomain.com/0.1/$ [NC]
RewriteRule ^(.*)$ /mydomain.com/0.1/$1
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ [NC]
RewriteRule ^(/)?$ mydomain.com/0.1/index.php [L]
RewriteCond %{THE_REQUEST}% ^[A-Z]{3,9}\ /mydomain\.com/ [NC]
RewriteRule . - [R=404,L]
И это .htaccess в / mydomain / с кучей правил для красивых и аккуратных URL.
RewriteEngine On
RewriteRule ^about/(.+) index.php?a=about&b=$1
RewriteRule ^services/(.+) index.php?a=services&b=$1
Прямо сейчас это результат:
При доступе к www.mydomain.com содержимое в / mydomain / отображается так, как и ожидалось. Тем не менее, также отображается www.mydomain.com/mydomain/, игнорируя правило 404 и создавая другую папку - независимо от имени - без htaccess, ВЫБРАВАЕТ 404.
Я занимался этой проблемой уже 5 дней и перепробовал все. На данный момент я не знаю, произошла ли ошибка от корня .htaccess или папки.
Заранее спасибо.
PS: Просто чтобы прояснить, я не могу контролировать файл httpd.conf.
Примечания:
- Я забыл сказать, что в /mydomain.com/ есть дополнительная папка /0.1/ для контроля версий.
- Если после "RewriteEngine On" в /mydomain.com/0.1/ htaccess включить "RewriteOptions Inherit", я получаю внутреннюю ошибку 500.
- Удаление файла /mydomain.com/0.1/ htaccess в целом приведет к желаемой ошибке 404 для www.mydomain.com/mydomain.com/0.1/ и выдаст 505 на www.mydomain.com