【问题标题】:404 Error in Joomla 3.8 when .htaccess is enabled启用 .htaccess 时,Joomla 3.8 中出现 404 错误
【发布时间】:2021-09-29 01:11:58
【问题描述】:

我在 Joomla 后端启用了使用 URL 重写,并使用终端将 htaccess.txt 重命名为 .htaccess。我目前在 AWS Ubuntu 16.04 上。我已经安装了 mod_rewrite。

只有我的主页有效。其余页面给出 404 错误。我该如何解决这个问题?

如果有人想看,这是我的 .htaccess 文件:

##
# @package    Joomla
# @copyright  Copyright (C) 2005 - 2017 Open Source Matters. All rights reserved.
# @license    GNU General Public License version 2 or later; see LICENSE.txt
##

##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line 'Options +FollowSymLinks' may cause problems with some server configurations.
# It is required for the use of mod_rewrite, but it may have already been set by your 
# server administrator in a way that disallows changing it in this .htaccess file.
# If using it causes your site to produce an error, comment it out (add # to the 
# beginning of the line), reload your site in your browser and test your sef urls. If 
# they work, then it has been set by your server administrator and you do not need to 
# set it here.
##

## No directory listings
<IfModule autoindex>
  IndexIgnore *
</IfModule>

## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Options -Indexes

## Mod_rewrite in use.

RewriteEngine On

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site then comment out the operations listed 
# below by adding a # to the beginning of the line.
# This attempts to block the most common type of exploit `attempts` on Joomla!
#
# Block any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root home page
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment the following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

#RewriteBase /

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.

我已经尝试过评论/取消评论: Options -Indexes RewriteBase /

【问题讨论】:

    标签: php apache .htaccess mod-rewrite joomla


    【解决方案1】:

    显然,我还必须编辑 000-default.conf 文件。以下是我解决问题的方法:

    我打开 /etc/apache2/sites-available/000-default.conf 并添加了这段代码,重新启动了 apache,它就像一个魅力一样工作。

    <Directory /var/www/html/>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>
    

    希望这对寻找答案的人有所帮助。

    【讨论】:

      【解决方案2】:

      只是为了添加到@Elain 的回答者,

      检查您是否通过 SSL 加载您的网站。如果是,那么你就是罪魁祸首。

      第 1 步。 编辑与您的网站相关的虚拟主机,但要编辑 ssl 版本(通常其名称类似于非 ssl 版本,只是在名称后附加了 -ssl

      第 2 步。 将以下内容放入上述文件中。

      <Directory /var/www/html/>
      Options FollowSymLinks
      AllowOverride All
      Order allow,deny
      allow from all
      </Directory>
      

      第 3 步。 使用sudo a2dissite mysite.com-ssl.conf禁用配置

      第 4 步。 使用sudo a2ensite mysite.com-ssl.conf启用配置

      第 5 步。 重启apache服务器,sudo service apache2 restart

      【讨论】:

        猜你喜欢
        • 2018-05-27
        • 2015-07-18
        • 2016-10-05
        • 1970-01-01
        • 2014-06-02
        • 1970-01-01
        • 1970-01-01
        • 2017-10-19
        • 2012-11-23
        相关资源
        最近更新 更多