1

我在域的根级别安装了带有搜索友好 URL 的 Joomla,但我的主机允许我访问 domain.com/stats 中的网站统计信息(需要身份验证),我看不到它,只是一个Joomla 产生 404 错误。

我认为这可能是由于 .htaccess 所以我尝试将此行添加到顶部:

RewriteRule ^(/stats) - [L]

但我仍然得到 404。这就是 .htaccess: 的其余部分的样子

##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

#
#  mod_rewrite in use

RewriteEngine On

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteCond %{REQUEST_URI} !^/stats
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

#  Uncomment 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
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section
4

1 回答 1

4

编辑:这些(直接在之后RewriteEngine On)有帮助吗?:

RewriteCond %{REQUEST_URI} ^/stats/.* [NC]
RewriteRule .* - [L]

或者

RewriteCond %{ENV:REDIRECT_STATUS} 200 RewriteRule .* - [L]

另外,尝试启用

RewriteBase /

如果它仍然不起作用,并且您能够更改为服务器/虚拟主机配置,请尝试记录重写过程

编辑结束

尝试添加一个

RewriteCond %{REQUEST_URI} !^/stats

之前

RewriteRule ^(.*)$ index.php [F,L]
于 2009-03-18T15:37:36.333 回答