Мне было очень трудно редактировать мой файл .htaccess, чтобы сделать эти три вещи вместе.Мне удалось получить каждую часть отдельно, но я просто не понимаю, как работает логический поток, чтобы заставить их всех работать.
Это лучшее, что мне удалось собрать, используя демонстрацию при поддержке bluehosthttp://helpdesk.bluehost.com/index.php/kb/article/000347
Я благодарен за любую помощь в решении этой проблемы.
# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php
# Bluehost.com
# .htaccess main domain to subdirectory redirect
# Copy and paste the following code into the .htaccess file
# in the public_html folder of your hosting account
# make the changes to the file according to the instructions.
# Do not change this line.
RewriteEngine on
# Change yourdomain.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?sampleurl.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/folder/
# Don't change this line.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /folder/$1
# Change yourdomain.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your folder, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?sampleurl.com$
RewriteRule ^(/)?$ folder/index.php
RewriteCond %{HTTP_HOST} ^sampleurl\.com$ [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://www.sampleurl.com/$1 [L]
# For security reasons, Option all cannot be overridden.
# Options All -Indexes
# Options ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes
Обновление:
Через долгое время, используя следующее, я столкнулся с проблемами.
IndexIgnore *
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/site/
RewriteRule (.*) https://www.example.com/site/$1 [L,R]
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} ^/site/
RewriteRule (.*) https://www.example.com/$1 [L,R]
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{SERVER_PORT} 443
RewriteCond %{REQUEST_URI} !^/site/
RewriteRule (.*) https://www.example.com/site/$1 [L,R]
Новые проблемы.
В Bluehost есть приложение, которое быстро устанавливает и обновляет приложения с открытым исходным кодом, такие как wordpress, joomla, phpbb и т. Д. Очевидно, мой новый файл super .htaccess.полностью ломает их систему.Единственный способ запустить обновления и установки - переместить файл .htaccess в .htaccess.bak, пока не завершится обновление или установка.Затем переместите его обратно.
Я не могу создать .htaccess на других сайтах, которые я размещаю в других каталогах.например, у меня есть основная учетная запись, которую я храню в / www / site /, в которую этот скрипт форсирует запросы.К сожалению, мои другие сайты, хранящиеся в / www / site2 / и / www / site3 /, не работают.Сначала я должен создать пустой .htaccess, чтобы предотвратить вытягивание .htaccess выше, найденного в / www /.По какой-то причине, если я пытаюсь сделать что-то вроде форсинга, www.site2.com я получаю 500 ошибок, говорящих о том, что я форсирую слишком много перенаправлений.
У меня есть теория, что мое решение выше должнобыть более конкретным, чтобы убедиться, что это влияет только на запрос, отправленный на example.com.(Я думаю, что строка с чем-либо, не содержащим / site /, немного широка).
Я ценю любую поддержку, решающую эту проблему.Избавил бы меня от головной боли!
Обновление II:
Я не верю, что у меня есть доступ к конфигурации Apache.Единственный вариант, который я вижу в cpanel - это обработчики apache (не совсем уверен, что делает этот раздел).
Я отправлю тикет, чтобы узнать, из какого места запускается сервер простых скриптов.Я полагаю, что он запускается с "https://www.simplescripts.com". Какие изменения вы бы порекомендовали добавить, чтобы игнорировать этот домен?
Мой хост bluehost запускает вас с основной учетной записью, а затем с поддоменами. Местоположение основной учетной записи задается по адресу user \ wwwК сожалению, это становится грязным, когда вы пытаетесь разместить несколько доменов. Вот почему я использую .htaccess для принудительной обработки запросов, попадающих в этот каталог, в каталог \ site \. Таким образом, основной сайт переходит в каталог \ site \.
Я думаю, что проблема перемещения с одним из моих поддоменов возникла из-за того, что wordpress пытался форсировать домен без www, а затем я написал файл .htaccess, форсирующий www. Это вызвало бесконечный цикл, а не мой файл .htaccess в этой темео. Если я могу решить проблему с простыми скриптами, я gmoney;)