.htaccess Удалить WWW из URL + Каталогов

Это, кажется, не проблема для многих людей (читайте: я не могу найти ответ), но я хотел бы обновить следующий код htaccess, чтобы не только удалить «www» из URL-адреса, доступ к каталогам.

RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

С этим, http://www.example.com/any/ решает нормально, но я хочу, чтобы он перенаправлял на http://example.com/any/ как с корнем.

У меня была та же проблема (проблема удаления «www» из URL-адресов, указывающих на подкаталог в дополнительном домене), но после некоторых проб и ошибок это, похоже, работает на меня:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L] 

Пример: http://www.addondomain.com/projects/a/gallery/4/2

Код перенаправления для не www => www и напротив www => не-www. Нет доменов и схем жесткого кодирования в файле .htaccess. Таким образом, исходный домен и версия http / https будут сохранены.

APACHE 2.4 И НОВЫЙ

NON-WWW => WWW:

 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

WWW => Не-WWW:

 RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^ %{REQUEST_SCHEME}://%1%{REQUEST_URI} [R=301,L] 

Примечание: не работает на Apache 2.2, где% {REQUEST_SCHEME} недоступен. Для совместимости с Apache 2.2 используйте код ниже или замените% {REQUEST_SCHEME} на фиксированный http / https.


APACHE 2.2 И НОВЫЙ

NON-WWW => WWW:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

… или более короткая версия …

 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTPS}s ^on(s)|offs RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

WWW => Не-WWW:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L] 

… более короткая версия невозможна, потому что% N доступен только из последнего RewriteCond …

Я думаю, вы близки, но попробуйте следующее:

 # force non-www domain RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteRule (.*) http://example.com/$1 [R=301,L] 

Не совсем точно, что вы имеете в виду под подкаталогами, но это следует за вашим примером.

Я использовал его, и это сработало для меня

 RewriteCond %{HTTP_HOST} ^www.locphen.vn/$ [NC] RewriteRule ^(.*)$ http://locphen.vn/$1 [R=301,L] 

Пример: http://www.locphen.vn/he-thong-loc-nuoc-gieng.html -> http://locphen.vn/he-thong-loc-nuoc-gieng.html

Я использую этот код. Если у моего посетителя нет www в его url, тогда это условие добавляет www с url, в противном случае нет необходимости добавлять www с url (потому что он уже имеет. :))

 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.YOUR-SITE\.com$ [NC] RewriteRule ^(.*) http://www.YOUR-SITE.com/$1 [L,R] 

Привет, код работает отлично, за исключением того, что он проходит с www в URL-адресе с некоторым значением и косой чертой в конце показывает параметр и значение в URL-адресе.

RewriteEngine On SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/plain text/xml RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(!.(\.gif|\.jpg|\.png|\.swf|\.css|\.js|\.txt|\.php|\.htm|\.html)|.+[^/])$ /$1/ [R=301,NC] RewriteRule ^(.[^.*]+)\/$ ?jogar=$1 [NC] Options -Indexes Options +FollowSymLinks RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http:\/\/%1%{REQUEST_URI} [R=301,QSA,NC,L]

  • добавить / удалить имя привязки из текущего URL без обновления
  • Можете ли вы запускать удаленный рабочий стол через URL-адрес?
  • Css Content, Attr и Url в том же предложении
  • Есть ли способ получить URL-адрес без строки запроса?
  • Поддержка браузера для URL-адресов, начинающихся с двойной косой черты
  • Как создать URL-адрес REST без глаголов?
  • В чем разница между параметрами URL и строками запроса?
  • Какой из них лучше pushstate или location.hash?
  • Есть ли способ изменить адресную строку браузера без обновления страницы?
  • Есть ли недостаток в использовании ведущего двойного слэша для наследования протокола в URL? т.е. src = "// domain.com"
  • URL-код, кодирующий символ пробела: + или% 20?
  • Давайте будем гением компьютера.