2014-11-04 117 views
1

我试图在运行Ubuntu的Linode服务器上配置WordPress永久链接。即使在完成配置它们的基本技巧之后,固定链接仍然无法正常工作。mod_rewrite上的“文件不存在”错误(WordPress永久链接)

的.htaccess -file已获准 “777” 和WP改写它:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /mydirectory/mysubdirectory/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /mydirectory/mysubdirectory/index.php [L] 
</IfModule> 

# END WordPress 

我已经配置“等/ apache2的/网站可用/默认的方式如下:

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> 
    <Directory /var/www/mydomin.com/public_html/mydirectory/> 
     RewriteEngine On 
     AllowOverride ALL 
    </Directory> 

正如你可以看到我已经尝试设置有“AllowOverride”到不同的文件夹中。我只是给它一个镜头,认为或许真的是压倒对于特定文件夹的规则。

我已经跑“a2en mod重写“命令并启用mod_rewrite。

我每次进行更改后都重新启动了Apache。

当我在我的WordPress网站上导航时,我收到“Page not found”错误。 Apache错误日志说如下:

File does not exist: /var/www/mydomain.com/public_html/mydirectory/mysubdirectory/ 

我在这里错过了什么?

+0

什么是您的网站物理上在服务器上的路径?您的文档根目录是/ var/www,但是您正试图在/var/www/mydomain.com/public_html/mydirectory/mysubdirectory/ – Omnikrys 2014-11-04 19:21:24

+0

上启用重写@Omnikrys它是/var/www/mydomain.com/public_html/mydirectory/mysub目录。这就是我安装WordPress的地方。该网站安装到子文件夹,因为它是一个开发环境。但现在我有点困惑。当我的所有实际网站文件应该位于/var/www/mydomain.com/public_html/文件夹中时,我的文档根目录可以是/ var/www? – 2014-11-04 19:52:36

+0

您使用虚拟主机吗? – Omnikrys 2014-11-04 20:17:10

回答

3

下面的设置可以在您的VirtualHost指令中找到相关站点。在大多数情况下,它位于一个单独的文件中,并从服务器的主要conf文件中引用。

RewriteEngine On 
AllowOverride ALL 

一般而言,您希望将每个站点的所有设置保留在其自己的文件中。因此,如果您需要调整其他任何内容,请在包含该站点的VirtualHost指令的文件中进行调整。它使得将来更容易排除故障/维护。