找不到.htaccess文件

时间:2014-04-11 22:11:16

标签: apache .htaccess

我的朋友完成了我的网站,它在公共服务器上启动并运行。我试图在我的内部服务器上运行相同的网站。但阿帕奇说文件没找到。我发现问题出在.htaccess文件中。这是我的档案

AddType text/x-component .htc
#BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

并在我的apache conf文件中设置

<VirtualHost *:80>

DocumentRoot /srv/www/
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>

    <Directory /srv/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order Deny,Allow
            Deny from all
            Allow from 192.168.43.0/255.255.255.0 192.168.42.0/255.255.255.0
<Directory /srv/www/companies/test1/>
            Options +Indexes +FollowSymLinks +MultiViews
            AllowOverride All
            Order Allow,Deny
            Deny from all
            Allow from 192.168.43.0/255.255.255.0 192.168.42.0/255.255.255.0
    </Directory>
    </Virtualhost>

错误日志说

[Fri Apr 11 16:57:33 2014] [error] [client 192.168.43.8] File does not exist:/srv/www/cms
[Fri Apr 11 16:57:33 2014] [error] [client 192.168.43.19] File does not exist:/srv/www/products, referer: http://192.168.43.8/companies/

我猜htaccess正在 / srv / www / 文件夹中取代 / srv / www / companies / test1 / 文件夹中的index.php。有关如何将htaccess指向正确位置的任何建议吗?

2 个答案:

答案 0 :(得分:0)

假设您在/ srv / www / companies / test1 /而不是/ src / www /中有cms和产品目录,您可以通过将DocumentRoot /srv/www/更改为DocumentRoot /srv/www/companies/test1/并重新启动apache来解决此问题

但一般情况下,您希望为计划投放的每个网站设置自定义VirtualHost,并将默认<VirtualHost *:80>设置为默认情况下访问您的IP地址时应提供的任何内容。

有关常见设置的一些示例,请参阅VirtualHost Examples

答案 1 :(得分:0)

.htaccess文件位于您的安装的根文件夹中,默认情况下是隐藏的。

如果您使用的是FileZilla:

  1. 启动FileZilla,然后选择顶部的“服务器”菜单
  2. 选择“强制显示隐藏文件”