重定向到www添加_ /

时间:2013-08-11 17:33:15

标签: .htaccess mod-rewrite joomla

我使用此代码处理奇怪的行为

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Howewer我不认为问题出在这个代码中。重定向工作正常,但是例如,如果我使用此地址mysite.com/something,它会重定向到www.mysite.com/_/something

Joomla htaccess:

RewriteEngine On
RewriteBase /

RewriteRule sitemap\.xml http://www.mojerc.cz/index.php?option=com_xmap&sitemap=1&view=xml [R]

## přesměrování na chybovou stránku 404
ErrorDocument 404 /obchod/poradce/404.html

########## Začátek - Joomla! jaderná SEF část.
#
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]
#
########## Konec - Joomla! jaderná SEF část.

########## 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!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

你们有没有遇到过这种奇怪的事情?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您还需要在包含此目录的目录中查找任何.htaccess个文件。 According to the manual

  

应用.htaccess文件中的配置指令   找到.htaccess文件的目录,以及所有目录   子目录。但是,重要的是要记住这一点   目录中可能存在.htaccess文件。   指令按照找到的顺序应用。因此,一个   特定目录中的.htaccess文件可能会覆盖找到的指令   在.htaccess文件中找到更高的目录树。以及那些,   反过来,可能已经被覆盖的指令发现更高,或者在   主服务器配置文件本身。

另请注意,服务器配置文件中的任何指令也将被处理。如果您无法访问服务器配置文件(您在共享主机上,或者您正在与管理该内容的公司托管),那么您需要联系主机以确定是否存在RewriteRules文件。

另外请记住,PHP和其他动态语言也可以执行类似于Apache的header()命令,并导致页面重定向(但它们必须位于其中一个PHP文件中)。

您可以在浏览器中使用插件,例如Firefox的 Live HTTP标头,以便在加载页面时查看标题,以查看重定向发生的位置。 (确保你不是一次运行很多标签。)

<强>更新 还有其他事情发生在我身上。如果您之前拥有规则是包含_/的301重定向,那么如果您已经删除了该规则,则可能会将其缓存在您的浏览器中。在您发布的此代码中,我没有看到任何会导致您遇到的行为的规则。由于你正在运行Joomla,它可能在Joomla配置中(可能是安装的默认目录)。