如何解决为什么我的干净 URL 在 Drupal 中不起作用,即使 rewrite_module 存在?
嘿伙计们。作为最后的手段,我在这里问这个问题,因为我已经尝试解决这个问题近两天了。
我正在尝试在我的 Drupal Web 应用程序上启用干净的 URL。我访问了几个公开问题,例如this一个,但无济于事。如果这是转帖,我深表歉意。
一些(相关)上下文:
- 该项目涉及使用 Vagrant 脚本自动设置虚拟机。
- 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/
下。我已经给了 Apache 该文件夹的递归所有权,以免造成必须设置权限的麻烦。无论如何,这不是一个生产项目。 -
在
/etc/httpd/conf/httpd.conf
文件中,我只接触了 DocumentRoot,我将其设置为DocumentRoot "/var/www/drupal"
。我不想想使用.htaccess。 -
当我运行
httpd -M | grep rewrite
时,我收到输出 rewrite_module (shared)。当我在测试页上运行phpinfo();
时,mod_rewrite 出现在加载的模块中。
运行应用程序,一切正常,并产生以下输出:
我知道另外两个警告,但这些是另一天的担忧。当我不顾警告继续运行时,Apache 加载 index.php 就好了:
但是,当我点击任意按钮时,就会发生这种情况:
Screenshot of yet another problem
我怀疑这是未启用干净网址的结果。但是,据我所知,所有必要的模块都已安装。
到目前为止我尝试过的:
- 在
/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 警告仍然存在:
但是,尽管有警告,但在继续时似乎没有问题。事实上,在应用程序本身中,导航到错误/警告部分,CLEAN URLS 警告甚至不存在!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。