在 Joomla 2.5 中激活 SEO 设置后出错
Posted
技术标签:
【中文标题】在 Joomla 2.5 中激活 SEO 设置后出错【英文标题】:Error after activating SEO Settings in Joomla 2.5 【发布时间】:2012-07-06 11:45:07 【问题描述】:我正在为 Joomla 2.5 使用 Shape5 企业响应模板
为了让我激活 SEO freidnly 网站,我必须: 1-将 htaccess.txt 更改为 .htaccess 2- 在全局配置中将搜索引擎友好 URL 从 No 更改为 Yes 3- 将使用 URL 重写从否更改为是
之后模板运行,但我创建的菜单不起作用,当我点击它时,它说:
找不到
在此服务器上找不到请求的 URL /联系人。
此外,在尝试访问时遇到 404 Not Found 错误 使用 ErrorDocument 来处理请求。
我已经做过这个测试: http://docs.joomla.org/How_to_check_if_mod_rewrite_is_enabled_on_your_server
并且我的 mod 重写已启用。
我还在 htaccess 中将“# RewriteBase /”编辑为“RewriteBase /”,但没有运气。
这是我的 htaccess:
> # @package Joomla
> # @copyright Copyright (C) 2005 - 2012 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)([^s]*s)+cript.*(>|%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)
> # Return 403 Forbidden header and show the content of the root homepage RewriteRule .* index.php [F]
> #
> ## End - Rewrite rules to block out some common exploits.
>
> ## Begin - Custom redirects
> #
> # If you need to redirect some pages, or set a canonical non-www to
> # www redirect (or vice versa), place that code here. Ensure those
> # redirects use the correct RewriteRule syntax and the [R=301,L] flags.
> #
> ## End - Custom redirects
>
> ##
> # 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.
> # RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]
> #
> # If the requested path and file is not /index.php and the request
> # has not already been internally rewritten to the index.php script RewriteCond %REQUEST_URI ^GET
> # and the request is for something within the component folder,
> # or for the site root, or for an extensionless URL, or the
> # requested URL ends with one of the listed extensions RewriteCond %REQUEST_URI /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$
> [NC]
> # and the requested path and file doesn't directly match a physical file RewriteCond %REQUEST_FILENAME !-f
> # and the requested path and file doesn't directly match a physical folder RewriteCond %REQUEST_FILENAME !-d
> # internally rewrite the request to the index.php script RewriteRule .* index.php [L]
> #
> ## End - Joomla! core SEF Section.
我该如何解决这个问题?
【问题讨论】:
呃,看起来你的整个.htaccess
文件归结为一行:RewriteEngine On
。这可能是一个没有任何进一步指令的空操作。
我用这个 .htaccess 代码修复了它
【参考方案1】:
我找到了解决方案,只需在您的 .htaccess 文件中添加替换此代码:
AddHandler x-httpd-php5 .php
AddHandler x-httpd-php .php4
##
# @version $Id: htaccess.txt 14401 2010-01-26 14:10:00Z louis $
# @package Joomla
# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##
#####################################################
# 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!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension xml files
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!
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
【讨论】:
以上是关于在 Joomla 2.5 中激活 SEO 设置后出错的主要内容,如果未能解决你的问题,请参考以下文章