Articles of .htaccess

.htaccess重写规则不分裂我想要的地方

所以,我想打开以下url: tags/tag1/tag2/tag3 放入一个参数化的参数如下: tags.php?tags=tag1&tags=tag2&tags=tag3 这给我留下了以下RewriteRules(其中包括) RewriteRule ^tags/([^/]+)(/.+)?$ tags.php?tags=$1$2 [C] RewriteRule ^tags.php?tags=([^/]+)/([^/]+)(/.+)?$ tags.php?tags=$1&tags=$2$3 [N] 但是当我拉起标签variables使用PHP我得到"tag1/tag2/tag3" ,这导致我相信它没有正确运行。 任何人都知道为什么第二条规则甚至没有申请一次?

为什么服务器错误日志状态许多文件不存在,但文件可访问和网站运作良好

我们将网站迁移到了VPS服务器(CentOS 5.6 + Plesk 9.5),一切正常,但我在Plesk注意到的一个奇怪的事情是error_log文件,大部分时间里它充满了数百个条目,如: … [Thu Aug 10 11:35:48 2011] [error] [client xx.xx.xx.xx] File does not exist: /var/www/vhosts/yourdomain.com/httpdocs/category1 [Thu Aug 10 11:35:48 2011] [error] [client xx.xx.xx.xx] File does not exist: /var/www/vhosts/yourdomain.com/httpdocs/category2 …. 如果我打开这些url(ex. http://yourdomain.com/category2)在我的网页浏览器一切正常,没有404错误,头响应200,所以一切正常,我应该看到我想要的页面。 但是为什么日志文件将其视为错误并指出文件不存在? 另外我想提到“category1”,“category2”不是物理目录,它是.htacess和mod_rewritepipe理path,所以不是真正的文件夹。 mod_rewrite似乎没有正确地告诉日志系统,当它看起来像一个文件/文件夹不是物理上存在但由mod_rewrite处理时,请求不应该被视为404。 任何帮助表示赞赏。 谢谢。 蒂姆

使用Safari 5.1访问无caching问题

我试图做到这一点,如果任何人试图从我的网站(例如去http://mywebsite.com/direct.swf )下载一个SWF文件,他们不能,他们只是redirect到主页在我的网站上。 以下指令在所有其他浏览器上都适用: <FilesMatch "\.(swf)$"> FileETag None <IfModule mod_headers.c> Header unset ETag Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" </IfModule> </FilesMatch> RewriteEngine On RewriteCond %{HTTP_REFERER} !^http(s)?://(my\.)?website.com [NC] RewriteRule \.(swf)$ http://website.com [NC,R,L] 而且,在升级到Safari 5之前,它正在使用Safari。现在发生的是,如果我使用embedded的swf加载url,则只会看到一个白页,如果检查活动监视器,则只加载swf的2.6kb。 在所有其他浏览器的URL加载正常(你可以看到瑞士法郎)。 任何人有一个想法什么是错的,我怎么可以修复?

APE处理程序Windows相当于使用htaccess禁用每个IP#的安全性?

我想closures由Helicon APE处理程序执行的Windows / IIS 7中的基本身份validation。 它应该closures本地IP#例如192.168.xxx。 用Helicon文档交叉引用Apache文档似乎是可行的,但Apache示例中的环境variables“MODSEC_ENABLE = Off”似乎不支持在Windows上。 有一个Helicon的替代scheme吗? # Apache htaccess sample: SetEnvIfNoCase Remote_Addr ^192\.168\..+$ MODSEC_ENABLE=Off

htaccess限制覆盖?

有没有办法来覆盖子目录中的htaccess文件? 过去几个小时一直在Google上search,没有什么用处。 我想阻止一些IP和不需要的机器人,但是我的403页面是在一个子目录中的,所以我必须重写Deny的内容,但从Allow from all似乎并没有撤销Deny的。 这是我一直在尝试的代码: /public_html/.htaccess <Limit GET POST> Order Allow, Deny Allow from all Deny from 111.13.8.* </LIMIT> <Files "/errors/"> Order Allow, Deny Allow from all </Files> 它返回一个500错误。 由于机器人无法访问errors子目录的htacess文件,这个代码将不得不在这里。

自定义403错误页面不显示

我想限制访问某些文件夹(包括,例如xml和日志),所以我给了他们700个权限,其中的所有文件有600个权限。 首先,这是限制访问的正确方法吗? 我有一个.htaccess文件在我的根,处理重写和错误文档。 根目录中有两个页面 – 403.php和404.php – 403和404错误。 我有这些规则添加到我的.htaccess文件: ErrorDocument 404 /404.php ErrorDocument 403 /403.php 现在,404页面工作得很好。 当我尝试访问'includes'文件夹时,403页面不显示 – 我得到标准的apache 403错误页面,而是说'另外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。 但是,当我尝试去我的浏览器中的.htaccess文件(在Web根目录中),我得到我的自定义403错误页面。 为什么发生这种情况?

在根目录下用.htaccess在子目录中安装wordpress

所以我在example.com的根目录下有一个.htaccess文件: DirectoryIndex index.html index.php <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php?sef_rewrite=1 [L,QSA] </IfModule> 现在我在example.com/blog/上安装wordpress,但是在那里上传wordpress文件之后,当我访问http://www.example.com/blog/时,页面没有find404错误 我的意思是我应该修改example.com根目录中的.htaccess,或者将请求redirect到/index.php而不是/blog/index.php 这是我添加到根目录中的.htaccess中的行: RewriteCond %{REQUEST_URI} !^/blog 所以整个事情看起来像: DirectoryIndex index.html index.php <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$ RewriteCond %{REQUEST_URI} !^/blog RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php?sef_rewrite=1 […]

避免下载htaccess

我正在尝试在线开发一本图书阅读器。 问题是,我把页面保存为JPG或PDF格式,然后我想使用Flash获取文件,但我不希望这个文件直接下载,所以我想避免下载JPG和PNG,但不是JS或SWF。 我试图在我的htaccess中使用这个,但不工作,因为不允许获取js文件。 任何错误? # secure htaccess file <Files .htaccess> order allow,deny deny from all </Files> Options All -Indexes RewriteEngine On #RewriteCond %{HTTP_REFERER} !^http://(.+\.)?domain\.com/ [NC] RewriteCond %{HTTP_REFERER} !^http://(.+\.)?server/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*\.(js|swf)$ – [F] <Files ~ "^.(htaccess|htpasswd)$"> deny from all </Files> Options Indexes order deny,allow

.htaccess – 与url匹配的php_value

Apache不让.htaccess使用像Location , Directory这样的装饰 – 没有这些,是否有可能匹配一个URL模式,并在.htaccess文件中设置PHPconfiguration设置(通过php_value )?

如何在使用SSLRequireSSL + ErrorDocument时避免URLredirect

好的,所以我有一个我正在使用的Apache主机(共享主机),他们的根目录是.htaccess文件。 Options -Indexes SSLOptions +StrictRequire ErrorDocument 401 "<!DOCTYPE html><html lang='en'> … " ErrorDocument 403 "<!DOCTYPE html><html lang='en'> … " SSLRequireSSL 所以当用户尝试连接没有SSL,他们被提示与文件中列出的自定义403 HTML。 在将旧url保留在地址栏中的情况下,可以快速添加https 。 但是,对于错误页面的改进,希望从./error加载一个php文件,并在ErrorDocument的定义中使用该文件。 现在这是踢球者,如果只是直接指定文件… ErrorDocument 403 /error/script.php 他们将得到另一个403或Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request. 因为到该文件的连接不在SSL下。 为了解决这个问题,可以试试这个… ErrorDocument 403 https://site.tld/error/script.php 但是,将客户端redirect到https://site.tld/error/script.php ,这是UNDESIRED,因为他们必须重新inputurl,因此无法将http更改为https 。 所以,我想我必须做下面的一个: […]