Wordpress 显示启用了 Apache mod_rewrite 的目录列表

Posted

技术标签:

【中文标题】Wordpress 显示启用了 Apache mod_rewrite 的目录列表【英文标题】:Wordpress showing directory listing with Apache mod_rewrite enabled 【发布时间】:2019-07-28 20:57:27 【问题描述】:

当我访问 crmpicco.localhost 时,我的 Wordpress 站点只显示目录列表而不是应用程序。

这是/usr/local/etc/httpd/extra/httpd-ssl.conf

##
## SSL Virtual Host Context
##

<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "/var/www/crmpicco/"
ServerName crmpicco.localhost:443
ServerAlias www.crmpicco.localhost
ServerAdmin crmpicco@crmpicco.com
ErrorLog "/private/var/log/apache2/error_log"
TransferLog "/private/var/log/apache2/access_log"
DirectoryIndex index.php

<Directory "/var/www/crmpicco">
    AllowOverride All
</Directory>

<Directory "/var/www/crmpicco/wordpress">
    AllowOverride All
</Directory>

Alias /app /var/www/crmpicco/symfony/web
Alias / /var/www/crmpicco/wordpress

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on
</VirtualHost>

我没有启用mod_rewrite,我认为这是问题所在,但我现在启用了它,它显示在phpinfo();中的loaded_modules

core mod_so http_core prefork mod_authn_file mod_authn_core mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_core mod_access_compat mod_auth_basic mod_socache_shmcb mod_reqtimeout mod_filter mod_mime mod_log_config mod_env mod_headers mod_setenvif mod_version mod_ssl mod_unixd mod_status mod_autoindex mod_vhost_alias mod_dir mod_alias mod_rewrite mod_php7

位于/var/www/crmpicco/wordpress 目录中的.htaccess 文件如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>

我显然在某处有一些错误配置,但我不知道在哪里。

【问题讨论】:

【参考方案1】:

我通过删除/ 上的Alias 并将/wordpress 目录作为DocumentRoot 来解决这个问题。

相关行是:

<VirtualHost _default_:443>

DocumentRoot "/var/www/crmpicco/wordpress"
ServerName crmpicco.localhost:443
ServerAlias www.crmpicco.localhost
ServerAdmin crmpicco@crmpicco.com
ErrorLog "/private/var/log/apache2/error_log"
TransferLog "/private/var/log/apache2/access_log"

<Directory "/var/www/crmpicco/wordpress/">
        Options +FollowSymLinks
        DirectoryIndex index.php
        Options -Indexes
        Require all granted
        AllowOverride all
</Directory>

Alias /app /var/www/crmpicco/symfony/web

...

</VirtualHost>

【讨论】:

以上是关于Wordpress 显示启用了 Apache mod_rewrite 的目录列表的主要内容,如果未能解决你的问题,请参考以下文章

在 Wordpress 上启用漂亮的永久链接 - apache 配置不起作用

apache_conf 通过启用gzip压缩来提高页面速度。在WordPress中添加到.htaccess

Wordpress 无法通过 ajax 请求加载正确的语言 mo 文件

我在wordpress表单插件Contact Form 7的使用上遇到问题,启用了这个插件,就是不显示。

我原先安装过一个mysql,结合iis和php安装了wordpress,后来装了xampp,在xampp里无法启用mysql了

如何为 wordpress 添加 ELB 并启用 https