簡體   English   中英

htaccess WWW到No-WWW不起作用

[英]htaccess WWW to no-WWW not working

好的,我知道還沒有得到很多答復,但是我一直在使用很多不同的解決方案,但是沒有一個對我有用。

我試圖在htaccess中使用mod_rewrite將所有www.domain.com重定向到domain.com-足夠標准。

該網站是一個wordpress網站,使用以下任何一項對我來說都是正常的,沒有任何問題

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

要么

RewriteEngine On
RewriteCond %{HTTP_HOST}  ^www.domain.com [nocase]
RewriteRule ^(.*)         http://domain.com/$1 [last,redirect=301]

我也嘗試了其他一些方法,但似乎都沒有效果!

還可能需要牢記以下內容也來自wordpress的htaccess中

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

我還檢查了是否啟用了mod_rewrite,它似乎基於此處嘗試的方法。 如何檢查是否在php中啟用了mod_rewrite? (克里斯蒂安·羅伊的解決方案)

該服務器是一個小滴滴,帶有托管有數字海洋的Ubuntu 12.10,是否有幫助? 我遵循此指南來確保.htaccess已被激活https://www.digitalocean.com/community/articles/how-to-use-the-htaccess-file (主要更改是將AllowOveride更改為ALL)

有任何想法嗎? 我在這個階段迷路了!

謝謝

根據要求更新了htaccess文件內容

 # BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST}  ^www\. [NC]
RewriteRule ^(.*)$   http://domain.com/$1 [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

**已更新為虛擬主機文件**

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/wordpress/public_html

Servername domain.com

ServerAlias www.domain.com

<Directory /home/wordpress/public_html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All   
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

它將起作用,但是您需要確保以下兩項:

  1. 您將www removal rule作為常規WP規則之前的第一條規則。
  2. 更新WP permalink settings ,使博客/家庭住址不帶www
RewriteEngine On
RewriteCond %{HTTP_HOST}  ^www\. [NC]
RewriteRule ^(.*)$   http://domain.com/$1 [R=301,L]

應該這樣做。 如前所述,它可能應該特定 WP的重寫之前完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM