1

我在 localhost 有我的网站的副本:

/var/www/vhosts/mysite.com/httpdocs

这是我的 /etc/apache2/sites-available/mysite

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/vhosts/mysite.com/httpdocs
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/>
                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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

我已将 htaccess.txt 复制到 .htaccess。当我激活友好 URL 和 URL 重写时,我收到 404 错误。

我在 .htaccess 中取消了对这一行的注释,但仍然不起作用:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

我也尝试将 rewritebase 更改为

RewriteBase /mysite

没有运气。

我做错了什么?

4

2 回答 2

1

不确定这是否是您遇到的问题,但我经历过重写在“localhost”上效果不佳。尝试更改您的主机文件以说

127.0.0.1     mysite.local

然后在该网址上访问它。

不确定这是否可行,但值得一试。

于 2012-09-27T08:17:17.023 回答
1

解决了!我与 /etc/apache2/sites-available 中的不同条目发生冲突。当我在 localhost 创建一个新站点时,我复制defaultmysite并修改mysite文件以指向它的 DocumentRoot。我不知道确切原因,但如果我禁用默认站点:

sudo a2dissite default

有用。

也许这并不能解决问题,但我更喜欢针对这个问题提出另一个更具体的问题,因为我已经测试过,它与启用的不同站点以及一个或多个启用了 RewriteEngine 的站点有关。

于 2012-09-27T18:39:57.193 回答