我的朋友完成了我的网站,它在公共服务器上启动并运行。我试图在我的内部服务器上运行相同的网站。但阿帕奇说文件没找到。我发现问题出在.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指向正确位置的任何建议吗?
答案 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: