Articles of .htaccess

htaccess,errordocument和joomla重写

我需要在我的.htaccess中设置一个404error handling,除了处理一些旧网站链接的301redirect。 新网站是用Joomla制作的,旧网站是用asp编写的。 在joomla中启用了url和url重写function。 我需要: 将/old/path/on/old/site/old-page.asp?parameter1=value1&parameter2=value2redirect301至/index.php?option=com_mycomponent&view=myview&parameter1=value1&parameter2=value2 将所有其他未find的文件redirect到/index.php?option=com_content&view=article&id=123&Itemid=456 这几乎成功,但我有一个问题: ErrorDocument指令发送302而不是404。如果我从ErrorDocument中删除了http://www.mywebsite.com ,它将导致Joomla中的错误500,因为当请求page.asp时,它会在查询string,并尝试提供不存在的view.asp.php(我不想创build它只是为了处理问题)。 这是我的htaccess: ## # @package Joomla # @copyright Copyright (C) 2005 – 2013 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! # # […]

Internet Explorer无法显示页面,其他浏览器可能,可能是htaccess /服务器错误

从Redhat到Suse的高stream量网站迁移后,Internet Explorer用户(至lessIE 9)在某些情况下会遇到麻烦,无法查看FrontPage(错误消息:“Internet Explorer无法显示页面”,指向500服务器错误)。 在大多数情况下,Internet Explorer不会像所有其他浏览器一样正确显示页面。 我已经检查了大约10个不同的电脑,不同的IE版本和不同的操作系统。 Browserstack也为所有版本的IE显示正确的站点。 到目前为止,我还没有能够自己重现错误。 在旧的服务器上这个问题并不存在。 根据apache access.log,错误可能与在.htaccess文件中指定的redirect有关。 访问日志在出现错误的情况下给出状态302,之后没有任何内容(对于特定的IP地址)。 错误日志是空的。 请参阅下面的完整.htaccess文件。 已经为该站点安装了SSL,并且运行良好,没有任何已知的错误。 奇怪的细节:如果接收到错误的用户按F5,即使在重新启动或重新启动浏览器之后,该站点仍然没有问题地加载。 这指出了一个caching问题,但到目前为止我还没有find原因。 SetEnv APPLICATION_ENV production Options All -Indexes Options +FollowSymLinks RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ [OR] RewriteCond %{HTTP_HOST} !www\.domain\.nl [NC] RewriteRule ^(.*)$ https://www.domain.nl/$1 [R,L] RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ – [NC,L] […]

在Apache中使用htaccess来阻止查询stringinput

我一直盯着这一会儿,不是我无法理解它,可能是树木的场景。 我正在尝试使用HTACCESS来阻止对Web服务器的某些input,所以我添加了以下指令: ####################################### ## QUERY STRING / HTTP METHOD BLOCKS ## ####################################### # request query string contains /proc/self/environ RewriteCond %{QUERY_STRING} proc\/self\/environ [NC,OR] #request query string contains base64_encode / base64_decode RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [NC,OR] # Block <script> in query string RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] # Block out any script trying to modify a _REQUEST variable via […]

Nginx的404错误页面的PHP与PARAMS

在Opencart中,404错误显示在这个URL中:/index.php?route=error/not_found这个页面有一个包含所有网站模板的404自定义页面。 我在Nginx中尝试过: error_page 404 = /index.php?route=error/not_found; 但它会去nginx的404错误页面。 如果我只写: error_page 404 = /index.php; 它去索引,但我不想去索引,我想去404 opencart页面。 我也尝试了一个命名的位置,并在一个重写,但我无法得到它的工作: error_page 404 = @error; location @error { rewrite ^.*$ /index.php?route=error/not_found last; } 它也没有工作。 它转到nginx 404错误页面

在Litespeed上启用FastCGI

我如何使我的Litespeed服务器使用FastCGI模块来处理.fcgi文件? 我试着将处理程序设置为fcgid-script但这不起作用。 句法: AddHandler fcgid-script .fcgi Options +ExecCGI 为了避免混淆,我不想通过FastCGI运行PHP或Ruby脚本。 我想运行编译的FastCGI原始程序集。 (我可以确认代码工作,已经在Apache上testing过了)

使用htaccess将单独的域名添加到WordPress的pipe理区域

我有一个Wordpress安装在我的服务器上的一个单独的文件夹(这意味着它不在根文件夹中)。 我们称之为文件夹“文件夹A”。 我有一个htaccess重写规则,将域A映射到文件夹A.里面的文件夹A是WordPress的pipe理文件夹,我们称之为文件夹AB我试图映射域B到文件夹AB,但我不能让它正常工作。 当你通过/ adminloginWordpress时,你会被redirect到/wp-login.php(所以从文件夹AB到文件夹A),也许这是我陷入困境的地方。 所以我想要做的是这样的: 域A>文件夹A域B>文件夹AB 请注意,这不是出于安全目的,我只是想www.domainb.com而不是www.domaina.com/wp-admin。 这可以用Wordpress完成吗?

如果文件存在于另一个文件夹如何重写使用htaccess?

如果该文件不存在于文档根目录中,但是确实存在于其他文件夹中,则我们正在尝试重写到另一个文件夹。 另一个文件夹位于完全不同的位置,在虚拟主机中使用“别名”。 所以,我们到目前为止(从这篇文章如何重写根文件,如果文件存在于文件夹? )是: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/legacy/ RewriteRule ^(.*)$ legacy/$1 [QSA,L] 这在一定程度上起作用,但是似乎将所有内容都指向了传统文件夹,而不仅仅是当文件不存在于第一个位置并且存在于传统文件夹中时。 杰克,先谢谢你的帮助

Apache2的mod_rewrite失败的不存在的子目录

甚至更短版本的.htaccess文件(Last RewriteCond不存在)用于在我的共享虚拟主机上完美工作,但我已经转移到与Ubuntu 12的VPS与它的股票Apache2,但它根本不会工作(甚至与我的变化),我不明白为什么。 我可以访问example.com或example.com/news,但不能访问example.com/article/4 我把mod_rewrite块从.htaccess到vhostconfiguration,反之亦然,但似乎没有工作。 我猜它实际上试图去到文章的子目录或东西(这不存在如此404),但我不知道如何阻止它做到这一点。 我正在使用Apache版本2.2.22 我的虚拟主机文件 <VirtualHost 127.0.0.1:80> DocumentRoot /home/example/www/example.com RewriteLogLevel 3 RewriteLog /home/example/www/example.rewrite.log <Directory "/home/example/www/example.com"> AllowOverride All Options -ExecCGI +FollowSymLinks -Indexes -MultiViews Order deny,allow allow from all <IfModule mod_rewrite.c> RewriteEngine On RewriteOptions inherit </IfModule> </Directory> AccessFileName .htaccess ServerSignature Off ServerName example.com ErrorLog /home/example/www/example.log LogLevel warn </VirtualHost> 我的.htaccess文件 ErrorDocument 404 /index.php?404 ErrorDocument 403 […]

重写规则跨环境保存path

我试图想出一些redirect规则,将在我的本地工作目录和生产工作。 问题是我的本地开发环境工程通过“本地主机/ exp”作为生产从域名“www.lorem.com”的根源。 这样做: RewriteEngine On RewriteCond ^rec.php /core/rec [R=301,L] 在生产工作不用担心,但在我本地redirect到:“本地主机/核心/ rec”,在那里我想要它是“本地主机/ exp / core / rec” 我宁愿不必在那里硬编码“exp”,到目前为止,我发现唯一的办法是每个环境都有独立的规则,我可以在我的本地使用: RewriteEngine On RewriteCond %{REQUEST_URI} (.*)/exp/(.*) RewriteRule ^rec.php /exp/core/rec [R=301,L] 感谢这一个帮助。 谢谢!

Apache2的htaccess问题

我目前遇到了让Apache2识别.htaccess文件的问题。 目前,我正在本机上运行服务器进行testing。 我可以让我的索引页加载没有问题,但任何时候我会导航到匹配.htaccess文件模式的页面,我得到一个404错误。 这里是我的default.conf文件和.htaccess文件的示例。 default.conf NameVirtualHost * <VirtualHost *> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all Require all granted </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog […]