今天早上有一个有趣的新错误报告 - “忘记密码?”和“忘记用户名?”生成的链接似乎不起作用。我不记得实际测试它们,所以有可能这已经有一段时间了。
这是一个完全受密码保护的网站,因此登录表单是网站第一页上的唯一内容(并且只为该页面使用单独的精简模板)。他们使用SEF和URL重写我的本地版本...所以我很确定它与它有关,但没有看到任何与众不同的东西。我也从来没有触及与Joomla一起安装的.htaccess文件,除了重命名它,但认为与此有关,因为它是两个版本之间的唯一区别。
本地:(工作)
/index.php?option=com_users&view=reset
/index.php?option=com_users&view=remind
直播:(“index.php?options = com_users&”已消失)
/?view=reset
/?view=remind
此外,(虽然因为它在本地工作我不认为这是它)我在登录页面的头部有一个条件,将具有用户标识的任何人重定向到主站点,如果他们没有用户ID然后没有任何反应。在本地忘记密码/用户名链接在半破碎的内页模板上,而不是留在第一页。
有什么想法吗?
谢谢!
修改
我有第二个远程站点,关闭了SEF URL并且这些链接又回来了......但是站点依赖于它们。任何人都有关于.htaccess例外的建议吗?还是其他想法?谢谢!
修改2
这是.htaccess文件:
##
# @version $Id: htaccess.txt 20196 2011-01-09 02:40:25Z ian $
# @package Joomla
# @copyright Copyright (C) 2005 - 2011 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 just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
##
## 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 base64_encode data within the 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!
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} (/component/) [OR]
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.
答案 0 :(得分:0)
几个问题(抱歉,似乎无法对您的帖子发表评论......): 您是否在活动站点上启用了任何sef组件? 你的全局配置中的sef设置怎么样? 你有没有把你的htaccess.txt设置为.htaccess?
答案 1 :(得分:0)
您发布的网址似乎是相对的 - 即它们不会锚定在您网域的根目录中。启用SEF后,您网页的“明显”网址为/somthing/something-else.html
来自这个'明显'网址的相对网址会破坏。
修复方法是在configuration.php文件中添加一行(在那里定义的类中),以强制Joomla显示一行到你的页面。这将修复“破损”的相对网址。
var $live_site = 'http://www.your-domain.com';
抱歉 - 我无法回想起你是否需要在网址的末尾添加一个斜线 - 我想不是,但也许会吮吸它并看到。
答案 2 :(得分:0)
我猜这与htaccess文件无关。我需要更多信息来确认我的怀疑是正确的,所以如果有任何假设是错误的,请告诉我。
我猜您已将网站的主页分配到登录菜单类型。获取“忘记密码?”但是,您可能还将登录模块添加到主页(甚至可能隐藏了主页的组件输出,作为剥离所有内容的一部分。
将主页作为用户组件下的菜单类型将导致Joomla的路由器按照您的指定创建链接,因为路由器将首先查找与选项和视图匹配的菜单项,并且找不到,将找到一个只匹配选项,在您的情况下是主页(即网址中不需要任何内容)。如果您的主页不是用户菜单类型,您将获得一个包含以下内容的网址:component / users /?view = remind。
即使使用主页的用户菜单类型,仍然应该在主页的组件输出中加载不同的部分,所以实际上您只需要取消隐藏组件输出,您应该看到显示的信息。
或者,您可以创建可供公众使用的新菜单项(通常在他们自己的菜单中),其中包含用于重置,提醒,注册的项目。然后链接将被/ reset而不是/?view = reset,它将转到另一个应该具有您需要的功能的页面。