服务器重新做系统后,伪静态打不开
服务器重新做系统后,伪静态打不开,其它设置的跟原来是一模一样的,就是重新做了系统,然后打开就是404ErrorDocument 404 /404.html
#RewriteEngine
RewriteEngine On
# § /discuz § /discuz/
RewriteBase /
# Rewrite
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^z-(.+)$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^a-(+)-(+)$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteRule ^article-(+)-(+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^list-(\w+)-(+)$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteRule ^forum-(\w+)-(+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^view-(+)-(+)-(+)$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteRule ^thread-(+)-(+)-(+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^g-(+)-(+)$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^blog-(+)-(+)$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(fid|tid)-(+)$ archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(+*)-(+)$ plugin.php?id=$1:$2&%1
规则也是这样的,都没有改过,宝塔面板也打开了伪静态X3的
根据你提供的信息,服务器重新做系统后,伪静态规则无法正常工作,导致404错误。以下是一些可能的原因和解决方法:
### 1. **检查Apache的Rewrite模块是否启用**
- 重新安装系统后,Apache的`mod_rewrite`模块可能没有启用。你需要确保该模块已启用。
- 你可以通过以下命令检查并启用`mod_rewrite`模块:
sudo a2enmod rewrite
sudo systemctl restart apache2
- 如果你使用的是宝塔面板,可以在面板的“软件管理”中找到Apache,确保`mod_rewrite`模块已启用。
### 2. **检查.htaccess文件是否生效**
- 确保你的`.htaccess`文件在网站根目录下,并且文件内容正确。
- 如果`.htaccess`文件存在且内容正确,但仍然无效,可能是Apache配置中未允许`.htaccess`文件覆盖配置。
- 你可以检查Apache的配置文件(通常位于`/etc/apache2/sites-available/`目录下),确保`AllowOverride`指令设置为`All`,例如:
<Directory /var/www/html>
AllowOverride All
</Directory>
- 修改后,重启Apache服务:
sudo systemctl restart apache2
### 3. **检查伪静态规则是否正确**
- 你提供的伪静态规则中,有一些地方可能需要修正。例如,`(+)-(+)`这样的正则表达式可能不正确,应该使用`(\d+)-(\d+)`来匹配数字。
- 你可以尝试将规则修改为如下:
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^z-(.+)$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^a-(\d+)-(\d+)$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteRule ^article-(\d+)-(\d+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^list-(\w+)-(\d+)$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteRule ^forum-(\w+)-(\d+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^view-(\d+)-(\d+)-(\d+)$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteRule ^thread-(\d+)-(\d+)-(\d+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^g-(\d+)-(\d+)$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^blog-(\d+)-(\d+)$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(fid|tid)-(\d+)$ archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([^/]*)-(\d+)$ plugin.php?id=$1:$2&%1
### 4. **检查宝塔面板的伪静态设置**
- 在宝塔面板中,确保你选择了正确的伪静态规则(如Discuz X3)。
- 你可以在宝塔面板的“网站”设置中找到对应的网站,点击“设置”,然后选择“伪静态”,确保选择了正确的规则。
### 5. **检查文件权限**
- 确保`.htaccess`文件和网站目录的权限设置正确。通常,`.htaccess`文件的权限应为644,目录权限应为755。
- 你可以使用以下命令修改权限:
chmod 644 /var/www/html/.htaccess
chmod 755 /var/www/html
### 6. **检查日志文件**
- 查看Apache的错误日志文件(通常位于`/var/log/apache2/error.log`),以获取更多关于404错误的详细信息。
- 你可以使用以下命令查看日志:
tail -f /var/log/apache2/error.log
### 7. **重启Apache服务**
- 在完成上述步骤后,重启Apache服务以确保所有更改生效:
sudo systemctl restart apache2
通过以上步骤,你应该能够解决伪静态无法正常工作的问题。如果问题仍然存在,请根据错误日志中的信息进一步排查。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]