我该如何修复 MediaWiki .htaccess 文件中 RewriteCond 的使用问题?

我该如何修复 MediaWiki .htaccess 文件中 RewriteCond 的使用问题?

以下是我们文件的相关部分.htaccess

RewriteEngine On

RewriteBase /
RewriteRule ^download.shtml     /en/downloads [R]

# Don't rewrite requests for files in MediaWiki subdirectories,
# MediaWiki PHP files, HTTP error documents, favicon.ico, or robots.txt
RewriteCond %{REQUEST_URI} !^/(stylesheets|images|skins)/
RewriteCond %{REQUEST_URI} !^/(redirect|texvc|index).php
RewriteCond %{REQUEST_URI} !^/error/(40(1|3|4)|500).html
RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_URI} !^/robots.txt

# Rewrite http://wiki.domain.tld/article properly, this is the main rule
RewriteRule ^(.*)$ /index.php/?title=$1 [L,QSA]

问题是,我们正在与现有的 MediaWiki 规则作斗争,我很难说清楚到底发生了什么。问题似乎是,当我们访问 download.shtml 时,它会带我们到Awiki 页面,但显示“此页面目前没有文本。”而实际上当我使用/en/downloads它访问该页面时确实显示了我们的下载页面。

答案1

您可能想尝试为 downloads.shtml 页面添加一个条件,以便它在您的第二条重写规则中忽略它。就像这样。

RewriteCond %{REQUEST_URI} !^/downloads.shtml

相关内容