我使用此代码处理奇怪的行为
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
你们有没有遇到过这种奇怪的事情?
感谢您的帮助。
答案 0 :(得分:1)
您还需要在包含此目录的目录中查找任何.htaccess
个文件。 According to the manual:
应用.htaccess文件中的配置指令 找到.htaccess文件的目录,以及所有目录 子目录。但是,重要的是要记住这一点 目录中可能存在.htaccess文件。 指令按照找到的顺序应用。因此,一个 特定目录中的.htaccess文件可能会覆盖找到的指令 在.htaccess文件中找到更高的目录树。以及那些, 反过来,可能已经被覆盖的指令发现更高,或者在 主服务器配置文件本身。
另请注意,服务器配置文件中的任何指令也将被处理。如果您无法访问服务器配置文件(您在共享主机上,或者您正在与管理该内容的公司托管),那么您需要联系主机以确定是否存在RewriteRules文件。
另外请记住,PHP和其他动态语言也可以执行类似于Apache的header()
命令,并导致页面重定向(但它们必须位于其中一个PHP文件中)。
您可以在浏览器中使用插件,例如Firefox的 Live HTTP标头,以便在加载页面时查看标题,以查看重定向发生的位置。 (确保你不是一次运行很多标签。)
<强>更新强>
还有其他事情发生在我身上。如果您之前拥有规则是包含_/
的301重定向,那么如果您已经删除了该规则,则可能会将其缓存在您的浏览器中。在您发布的此代码中,我没有看到任何会导致您遇到的行为的规则。由于你正在运行Joomla,它可能在Joomla配置中(可能是安装的默认目录)。