Drupal 8启用简洁链接

译者:anxin
日期:2017-12-07

Drupal 8 默认支持简洁链接,只要设置好URL重写规则,使用Drupal 8简洁链接的URL就能够正常运行。Apache需要确保mod_rewrite模块已被启用,Nginx需要确保ngx_http_rewrite_module模块已被安装。

默认情况下,Apache和Nginx的重写模块都是被启用的。

Drupal 8 Apache简洁链接配置

Drupal 8 需要使用 .htaccess 启用简洁链接:使用 .htaccess 文件中的配置覆盖 Apache 服务器中配置,然后使用 .htaccess 中URL重写规则对 URL 重定向。

启用Drupal 8的.htaccess文件

在 Httpd 的配置文件中添加如下代码,Debian8 的配置文件 /etc/apache2/apache2.conf,CentOS7 的配置文件/etc/httpd/conf/httpd.conf

AccessFileName .htaccess

配置Drupal 8使用.htaccess中的重定向规则

I、启用虚拟机的情况

在虚拟主机的配置文件中添加如下代码(否则仍然会提示:简洁链接已禁用)Debian 系统的虚拟机配置文件/etc/apache2/sites-enabled/000-default.conf;CentOS 默认没有配置虚拟机:

<Directory /path-to-site>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

II、未启用虚拟机的情况

在Httpd的配置文件中添加如下代码,Debian8 的配置文件 /etc/apache2/apache2.conf,CentOS7 的配置文件/etc/httpd/conf/httpd.conf

<Directory /path-to-site>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

注:"/path-to-site" 代表网站位置。

有关Drupal 8启用简洁链接的更多信息查看:Drupal 8 启用简洁链接(Clean URL)配置详解

Drupal 8 Nginx简洁链接说明

1)在Nginx中只要设置了如下代码重写规则,就能够保证简洁链接的正常使用,同时Nginx不会提示简洁链接禁用信息:

location / {
        try_files $uri /index.php?$query_string; # For Drupal 8
}

2)如果你使用的是CentOS系统,添加如下代码处理重写的URL:

#CentOS
location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        include fastcgi_params;
        fastcgi_param HTTP_PROXY "";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php-fpm/www.sock;
}

查看具体的Nginx安装配置

3)如果你使用的是Debian系统,添加如下代码处理重写的URL:

#Debian
location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        include fastcgi_params;
        fastcgi_param HTTP_PROXY "";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

查看具体的Nginx安装配置

本文链接:/doc/drupal-8/for-drupal-8-enable-clean-url

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!