多个错误,而不是重定向,apache2 / htaccess

时间:2011-11-18 18:10:36

标签: .htaccess redirect apache2

这是我的.htaccess文件

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

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

访问domain.com会将我重定向到www.domain.com

但是,转到domain.com/2011/11/18/blog-title会在浏览器网址中显示http://domain.com/var/htdocs/public_html/

我的目标是domain.com上的任何页面都会重定向到www.domain.com

然后我去www.domain.com或domain.com / YYYY或/ YYYY / MM或/ YYYY / MM / DD将传递PHP REQUEST_URI以便我可以从MySQL数据库中获取数据。

我最初从WordPress复制了.htaccess文件,但由于/ var / htdocs / public_html出现在浏览器网址栏中,它似乎无法正常工作。

1 个答案:

答案 0 :(得分:0)

这样可以解决问题:

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

如果你想要一个特定的域,那就是这个:

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

规则分别来自Drupal 7和Drupal 6,并且一直很适合我

修改

再次查看您的代码我认为唯一的问题是您在/http://www.domain.com之间没有$1。除此之外,它几乎与上面的第二个例子完全相同