Joomla: Логин ссылки на "Забыли пароль?"и "Забыли имя пользователя?"сломаны, связаны с SEF? - PullRequest
0 голосов
/ 29 марта 2012

Этим утром получил интересный отчет об ошибке - "Забыли пароль?" и "Забыли имя пользователя?" сгенерированные ссылки, похоже, не работают. Я не помню, чтобы на самом деле их тестировал, так что, возможно, так было некоторое время.

Это сайт, полностью защищенный паролем, поэтому форма входа в систему - единственная вещь на первой странице сайта (и использование отдельного урезанного шаблона только для этой страницы). Они работают над моей локальной версией с перезаписью SEF и URL ... так что я уверен, что это как-то связано, но я не вижу ничего необычного. Я также никогда не трогал файл .htaccess, который устанавливается вместе с Joomla, за исключением переименования, но думал, что это как-то связано с этим, поскольку это единственное различие между двумя версиями.

Местный: (рабочий)

/index.php?option=com_users&view=reset
/index.php?option=com_users&view=remind

Live: ("index.php? Options = com_users &" ушло)

/?view=reset
/?view=remind

Кроме того (хотя, поскольку он работает локально, я не думаю, что это так), у меня есть условие в заголовке страницы входа, которое перенаправляет любого пользователя с идентификатором пользователя на главный сайт, и если у них нет userid тогда ничего не происходит. Локально ссылки забыть свой пароль / имя пользователя оказываются на полуразрушенном шаблоне внутренней страницы, не оставаясь на первой странице.

Есть мысли?

Спасибо!

Редактировать

У меня был второй удаленный сайт, отключены URL-адреса SEF, и эти ссылки вернулись ... но сайт зависит от них. У кого-нибудь есть предложения по поводу исключения .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.

Ответы [ 3 ]

0 голосов
/ 01 апреля 2012

URL-адреса, которые вы разместили, кажутся относительными - то есть они не привязаны к корню вашего домена. Когда SEF включен, «видимые» URL-адреса ваших страниц: /somthing/something-else.html

Относительные URL из этого «кажущегося» URL сломаются.

Исправление заключается в добавлении строки в ваш файл configuration.php (внутри класса, который там определен), чтобы Joomla показала строку на ваших страницах. Это исправит «неработающие» относительные URL.

var $live_site = 'http://www.your-domain.com';

Извините - я не могу вспомнить, нужно ли ставить косую черту в конце URL - я думаю, что нет, но, возможно, сосут и увидят.

0 голосов
/ 08 июня 2012

Я думаю, что это не относится к файлу htaccess, как все.Мне нужно немного больше информации, чтобы подтвердить, что мои подозрения верны, поэтому, пожалуйста, дайте мне знать, если какие-то предположения неверны.

Я бы предположил, что вы назначили домашнюю страницу своего сайта меню входа в систему.тип.Чтобы получить "забыл пароль?"и связанные ссылки, тем не менее, вы, вероятно, также добавили модуль входа на домашнюю страницу (и, возможно, даже скрыли вывод компонента для домашней страницы как часть разборки всего.

Наличие домашней страницы в качестве типа меню под компонентом usersзаставит роутер Joomla создать ссылку, как вы указали, так как маршрутизатор сначала будет искать пункт меню, который соответствует опции и представлению, и, не найдя его, найдет тот, который просто соответствует опции, которая в вашем случае является домашней страницей (т.е. ничего не нужно в URL). Если бы ваша домашняя страница не была типом пользовательского меню, вы бы получили URL, который имеет следующий вид: component / users /? view = remind.

Даже с типом пользовательского меню дляНа домашней странице различные компоненты должны по-прежнему загружаться в вывод компонента на главной странице, так что на самом деле вам просто нужно было бы показать вывод компонента, и вы должны увидеть отображаемую информацию.

Альтернативно, вы можете создавать новые пункты меню.которые доступны для общественности (как правило, в ихсобственное меню), которые содержат пункт для сброса, напоминания, регистрации.Тогда ссылки будут / reset вместо /? View = reset, и он перейдет на другую страницу, которая должна иметь необходимую вам функциональность.

0 голосов
/ 30 марта 2012

несколько вопросов (извините, не могу оставить комментарий к вашему сообщению ...): У вас есть какие-либо sef-компоненты, включенные на сайте? Как насчет настроек sef в вашей глобальной конфигурации? Вы установили свой htaccess.txt в .htaccess?

...