好的我知道这个问题没有得到很多回答,但我一直在使用各种不同的解决方案,但没有一个能为我工作。
我正在尝试在我的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是否已启用,它似乎是基于此处尝试的方法How to check if mod_rewrite is enabled in php?(Christian Roy的解决方案)
服务器是一个小小的小滴,如果有帮助的话,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
答案 0 :(得分:0)
它会起作用,但你需要确定两件事:
www removal rule
作为常规WP规则之前的第一条规则。permalink settings
以使博客/家庭地址为无答案 1 :(得分:0)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
应该这样做。如前所述,它可能应该在 WP特定的重写之前完成。