为什么我的 clean URL 在 Drupal 中不起作用,即使存在 rewrite_module?
Why don't my clean URL's work in Drupal, even though rewrite_module is present?
大家好。我在这里问这个问题是不得已的办法,因为我已经尝试解决这个问题将近两天了。
我正在尝试在我的 Drupal 网络应用程序上启用清理 URL。我访问了几个public个问题this一个,但都没有用。如果这是转载,我深表歉意。
一些(相关)上下文:
- 该项目涉及使用 Vagrant 脚本自动设置 VM。
- VM 没有 GUI。
- Vagrant 使用 VirtualBox.
- Vagrant 使用 bento/centos-7.9 作为基础框。
- 每当我需要一个终端来执行 PS 或 Linux 命令时,我都会在我的物理设备上使用 WSL。
我正在使用以下方法在 VM 上设置 LAMP 堆栈:
- CentOS 7.9,如上所述。
- Apache 2.4.6,如:
yum -y install httpd
- MariaDB 10.5.9,如:
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod +x mariadb_repo_setup
./mariadb_repo_setup
yum -y install mariadb-server
- PHP 7.4.16,如:
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum -y install php php-mysql
我正在存储提取的 Drupal 内容 (index.php, update.php,
核心、站点...) 在 /var/www/drupal/
下。我给了阿帕奇
该文件夹的递归所有权,以免造成必须设置权限的麻烦。反正也不是制作项目。
在/etc/httpd/conf/httpd.conf
文件中,我只接触到了
DocumentRoot,我设置为 DocumentRoot "/var/www/drupal"
。我不想使用.htaccess.
当我运行httpd -M | grep rewrite
时,我收到输出rewrite_module(共享)。当我在测试页面上 运行 phpinfo();
时,加载的模块中存在 mod_rewrite。
运行 应用程序,一切正常,并产生以下输出:
Drupal warnings top part
Drupal warnings bottom part
我知道其他两个警告,但这些是另一天的担忧。当我不顾警告继续时,Apache 加载 index.php 就好了:
Screenshot of index.php
但是,当我单击 任何按钮 时,会发生这种情况:
Screenshot of yet another problem
我怀疑这是 clean URL 未启用 的结果。但是,据我所知,所有必要的模块都已安装。
到目前为止我尝试过的:
- 在
/etc/httpd/conf/httpd.conf
中尝试所有建议的 here。
- 在
/etc/httpd/conf/httpd.conf
中,将每个 AllowOverride 选项设置为 All.
- 检查兼容性问题。
- 移动文档根目录。
- 更多...
将不胜感激。提前谢谢了。如果您需要更多信息,我会尽快回复。
大家好。问题已解决
不知何故,它突然起作用了。我现在可以在不弹出 未找到 错误的情况下浏览网站。
我重试了一个以前不行的方法,现在可以了。任何其他变量都没有变化。我编辑了 /etc/httpd/conf/httpd.conf
。除了已经将 DocumentRoot 更改为 /var/www/drupal
之外,我还在其下添加了另一个配置:
<Directory "/var/www/drupal">
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
我从 here 获得了这些信息。
尽管 CLEAN URLS 警告仍然存在:
Drupal warnings top part
但是尽管有警告,继续时似乎没有问题。事实上,在应用程序本身中,导航到 errors/warnings 部分,CLEAN URLS 警告甚至不存在!
大家好。我在这里问这个问题是不得已的办法,因为我已经尝试解决这个问题将近两天了。
我正在尝试在我的 Drupal 网络应用程序上启用清理 URL。我访问了几个public个问题this一个,但都没有用。如果这是转载,我深表歉意。
一些(相关)上下文:
- 该项目涉及使用 Vagrant 脚本自动设置 VM。
- VM 没有 GUI。
- Vagrant 使用 VirtualBox.
- Vagrant 使用 bento/centos-7.9 作为基础框。
- 每当我需要一个终端来执行 PS 或 Linux 命令时,我都会在我的物理设备上使用 WSL。
我正在使用以下方法在 VM 上设置 LAMP 堆栈:
- CentOS 7.9,如上所述。
- Apache 2.4.6,如:
yum -y install httpd
- MariaDB 10.5.9,如:
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod +x mariadb_repo_setup
./mariadb_repo_setup
yum -y install mariadb-server
- PHP 7.4.16,如:
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum -y install php php-mysql
我正在存储提取的 Drupal 内容 (index.php, update.php, 核心、站点...) 在
/var/www/drupal/
下。我给了阿帕奇 该文件夹的递归所有权,以免造成必须设置权限的麻烦。反正也不是制作项目。在
/etc/httpd/conf/httpd.conf
文件中,我只接触到了 DocumentRoot,我设置为DocumentRoot "/var/www/drupal"
。我不想使用.htaccess.当我运行
httpd -M | grep rewrite
时,我收到输出rewrite_module(共享)。当我在测试页面上 运行phpinfo();
时,加载的模块中存在 mod_rewrite。
运行 应用程序,一切正常,并产生以下输出:
Drupal warnings top part
Drupal warnings bottom part
我知道其他两个警告,但这些是另一天的担忧。当我不顾警告继续时,Apache 加载 index.php 就好了:
Screenshot of index.php
但是,当我单击 任何按钮 时,会发生这种情况:
Screenshot of yet another problem
我怀疑这是 clean URL 未启用 的结果。但是,据我所知,所有必要的模块都已安装。
到目前为止我尝试过的:
- 在
/etc/httpd/conf/httpd.conf
中尝试所有建议的 here。 - 在
/etc/httpd/conf/httpd.conf
中,将每个 AllowOverride 选项设置为 All. - 检查兼容性问题。
- 移动文档根目录。
- 更多...
将不胜感激。提前谢谢了。如果您需要更多信息,我会尽快回复。
大家好。问题已解决
不知何故,它突然起作用了。我现在可以在不弹出 未找到 错误的情况下浏览网站。
我重试了一个以前不行的方法,现在可以了。任何其他变量都没有变化。我编辑了 /etc/httpd/conf/httpd.conf
。除了已经将 DocumentRoot 更改为 /var/www/drupal
之外,我还在其下添加了另一个配置:
<Directory "/var/www/drupal">
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
我从 here 获得了这些信息。
尽管 CLEAN URLS 警告仍然存在:
Drupal warnings top part
但是尽管有警告,继续时似乎没有问题。事实上,在应用程序本身中,导航到 errors/warnings 部分,CLEAN URLS 警告甚至不存在!