安装Drupal 8后除了首页外全是not found

大伟哥 提交于 2017-05-18,周四, 15:08 ,最近更新于2017-05-19,周五, 00:27

群里有个新手朋友第一次安装Drupal 8结束后,首页可以打开,显示效果也正常,但是点击首页上的任何链接,打开页面都会出错,显示下面错误:

Not Found

The Requested URL /admin/config/ was not found on this server.

Drupal 8安装后页面找不到

首页能够显示,说明数据Drupal已经安装完成,能够运行了,但为什么其他页面都会出错呢?

这是因为Drupal 8默认开启了简洁链接,需要服务器的rewrite功能支持。但因为各种原因服务器的url rewrite功能没有启用或者配置错误导致Drupal 8出错。

那么如何解决呢?

以下方案只适用于Apache Web服务器,如果您使用的是Nginx或者IIS,请另行寻找其他解决方案。

服务器环境示例说明(如果使用的环境不同,请自行替换):

  1. #系统:Ubuntu Server 14.04/16.04
  2. #Web Server: Apache 2.2/2.4
  3. #网站根目录:/var/www/html/daweibro.com/
  4. #虚拟主机配置文件:/etc/apache2/sites-available/daweibro.com.conf

1. 首先是确认Drupal 8所在目录中是否存在.htaccess文件。

  1. ls -a /var/www/html/daweibro.com
  2. . .csslintrc .gitattributes modules update.php
  3. .. .editorconfig .htaccess profiles vendor
  4. autoload.php .eslintignore index.php README.txt web.config
  5. composer.json .eslintrc jd_root.txt robots.txt
  6. composer.lock .eslintrc.json libraries sites
  7. core example.gitignore LICENSE.txt themes

.htaccess默认是隐藏文件,在复制的时候很容易被漏掉,所以首先要确认一下是否遗漏了这一重要文件。如果没有的话,就需要复制相应版本下的.htaccess文件到网站根目录下。

2.需要确认.htaccess文件里有关rewirte的模块开启。

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on

确保RewriteEngine on这一行最前面没有#符号,如果有的话,需要删掉#,这样才能保证rewrite功能启用。

3.检查主机配置文件是否允许rewrite.使用vim或者其他文本编辑软件打开/etc/apache2/sites-available/daweibro.com.conf,确保里面有以下代码:

  1. <Directory /var/www/html/daweibro.com>
  2. Options Indexes FollowSymLinks MultiViews
  3. AllowOverride All
  4. Order allow,deny
  5. allow from all
  6. </Directory>

AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。

4.基本上如果这些做完,应该就能解决问题了。如果不幸还是没解决,那就只能再检查mod_rewrite模块有没有安装并启用。

总之,出现这种问题一般就是rewrite的问题,我们要从浅入深在地排查过去就是了

文章分类

标签

添加新评论

此字段内容将保密,不会被其他人看见。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
发布评论前,请通过下面的验证,以免被当作垃圾评论机器人屏蔽。
9 + 0 =
计算出这道简单的算术题并键入答案。例如、1+3,就输入 4。