1

我已经使用 tasksel 在 UBUNTU 12.04 64 位服务器上安装了 lamp。一切正常。但是现在我发现每个目录的 .htaccess apache 覆盖的东西不起作用。

我在谷歌上搜索了可能的原因。

http://www.cyberciti.biz/faq/apache-htaccess/

http://smartwebdeveloper.com/apache/htaccess-problems

但他们都没有工作。

我需要将 domain.com 重定向到 www.domain.com。因此,我在服务器根目录的 .htaccess 文件中使用以下代码

<IfModule mod_rewrite.c>

# Enable Rewrite Engine
RewriteEngine On
RewriteBase /

# Redirect to www.
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule (.*) http://www.domain.com/$1 [R=301,L] 

</IfModule>

Apache虚拟主机配置:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    <Directory />
            Options FollowSymLinks
            AllowOverride ALL
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride ALL
            Order allow,deny
            allow from all
    </Directory>
    ...........................
    ...........................
    ...........................

apacha2.conf 有这个:

AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>
4

1 回答 1

1

一切看起来都设置正确,所以很可能mod_rewrite没有启用。尝试sudo a2enmod rewrite从终端运行。

此外,不要忘记重新加载 apache ( sudo service apache2 reload),然后sudo service apache2 restart在对您列出的任何文件进行更改后重新启动 apache ( )(不是.htaccess文件,因为它们在每个请求中都会读取,而是您列出的其余文件)。

HTH。:)

于 2013-08-18T04:03:26.453 回答