Я пытаюсь использовать какое-то правило в своем проекте для удаления www
с начала URL
, но у меня есть некоторые проблемы.
моя структура сервера:
domain.com/beta_folder
domain.com/beta_folder/page+type
domain.com/beta_folder/page+type/content+name
domain.com/beta_folder/page+type/content+name/edit
domain.com/beta_folder/page+type/content+name/etc.
domain.com/beta_folder/.htaccess //here is where my htaccess is
beta_folder
- папка сайта, а content+name
- переменные содержимого, созданные для извлечения страниц из базы данных.
сайт отлично работает по этим правилам
RewriteEngine On
RewriteRule ^(page\+type/)([a-zA-Z0-9_+-]+)[/]?$ page_folder/page.php?varname=$2
Я хотел удалить www
, поэтому я добавил это правило, но оно не действует
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com$1 [R=301,L]
RewriteRule ^(page\+type/)([a-zA-Z0-9_+-]+)[/]?$ page_folder/page.php?varname=$2
Моя проблема начинается, если я наберу www
перед моим доменным именем:
это работает
http://domain.com/beta_folder/page+type/content+name
если я напишу
http://www.domain.com/beta_folder/page+type/content+name
, то правило перезаписи перенаправит меня на
http://www.domain.compage+type/content+name
, если я удалю www
правила,проблема все еще активна
к сожалению, я не могу сделать публичный тест для своего домена
в принципе, если я пишу
http://www.domain.com/beta_folder
, правила отправляют меня на
http://domain.com/
единственный способ, который я нашел, чтобы решить эту проблему, это написать папку, в которой находится мой сайт, так:
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/beta_folder/$1 [R=301,L]
Я не понимаю, почему я должен написатьпапка, потому что мой cond для перезаписи влияет на http://www.domain.com/folder_name/contents
, а не http://www.domain.com/contents
почему folder_name
отсутствует при перезаписи?