在我的共享主机服务器(Hostmonster)上,我设置了django(实际上是pinax),这样一个.htaccess mod_rewrite规则会将请求重写为一个pinax.fcgi文件: RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ pinax.fcgi/$1 [QSA,L] 我想要做的是有一个不同的pinax.fcgi文件被调用,取决于使用的域(或子域),如下所示: RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ pinax2.fcgi/$1 [QSA,L] RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ pinax.fcgi/$1 [QSA,L] 这存储在我的ROOT public_html文件夹(不是在public_html /子域/文件夹).htaccess文件,但不幸的是只是导致内部redirect错误。 我如何编写这些规则,以便他们为不同的域使用不同的fcgi文件?
是否有可能创build一个当前请求URI的MD5哈希string,并将其分配为一个ENVvariables,所以我可以从PHP读取?
是否有可能有2个networking服务器运行在不同的端口在同一个盒子,然后使用htaccess隧道从1服务器到另一个基于rewritecond的stream量? 基本上,当满足某个条件时,我希望请求由我的其他Web服务器处理,我不想返回一个移动的响应。
我有一个网站stream量低,一天不到500次。 它具有6G的内存,并且使用率低,平均有5%被使用。 但是,一旦googlebotbuild立了一个连接到我的web服务器/ Apache,内存和CPU使用率在几秒钟内尖峰,服务器变得无法访问 – 网站,SSH和所有其他服务。 当我为端口80做lsof时,这是我在几秒钟内崩溃之前所看到的。 lsof -i:80 mywebsite:http-> crawl-66-249-71-200.googlebot.com:43567(ESTABLISHED) Google Bot设置为缓慢抓取速度。 Apacheconfiguration是: ServerLimit 256 MaxClients 150 MaxRequestsPerChild 100 KeepAlive Off KeepAliveTimeout 5 MaxKeepAliveRequests 100 错误日志显示: Cannot allocate memory: couldn't create child process: /opt/suphp/sbin/suphp
我怎么能给不同的子目录访问? 第一个问题是:我必须让程序员修改htaccess文件,而不是访问控制。 我只能访问htaccess指令一次,而不是访问Apache的httpd.conf。 这里是我的文件夹: ~/www/ ~/beta/ -> group betatesters developers ~/dev/ -> group developers 我想只有一个.htaccess位于根目录(开发人员没有访问那里)。 ~/.htaccess ~/htpassd ~/htgroup 。 AuthType Basic AuthName "Password Required" AuthUserFile /home123/user321/htpasswd AuthGroupFile /home123/user321/htgroup <FilesMatch "beta"> Require group betatesters developers </FilesMatch> <FilesMatch "dev"> Require group developers </FilesMatch> 任何想法?
我正在尝试将urlhttp://domain.com/?p=106redirect到http://domain.com/?p=110 我的.htaccess文件如下所示: RewriteEngine On RewriteCond %{QUERY_STRING} ^p=106 RewriteRule / http://domain.com/\?p=110 [L,R=301] 但我似乎无法得到它的工作。
就我的代码而言,我了解到为什么我会遇到无限循环。 所以我有以下几点: <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteRule ^foo/?([^/]+)?/?(.+)? /foo.php?bar=$1&baz=$2 [L,NC] </IfModule> 所以,用户进入foo (或foo/a/b )并redirect到foo.php?bar=$1&baz=$2 。 但在这一点上(这是我知道我需要一个更彻底的解释,因为我确定这是devise).htaccess文件正在重新运行foo.php?bar=$1&baz=$2 ,这匹配我规则,并进入无限循环。 但是我不知道为什么要通过我的规则重新运行。 什么是我不了解.htaccess RewriteRule ? PS我已经解决了这个直接的问题,把下面的命令放在规则之前,但是我想知道为什么我可以在将来解决这个问题(所以我可以删除这些命令行,而不是其他的东西)。 RewriteCondition %{REQUEST_FILENAME} !-f RewriteCondition %{REQUEST_FILENAME} !-d
我工作的公司在不同的服务器上使用了多个托pipe区域,用于我们stream程的不同部分。 首先,我们在本地机器上构build东西,并在本地主机上testing它们。 然后,我们推送到可以查看网站的“QA”服务器; 最后,我们把最新版本推到“制作”服务器上。 我正在使用一个.htc行为文件(CSS3 PIE)让IE遵守CSS3属性。 我在当地看到了这个工作,但是我认为一旦推进,我认为我没有看到它在进行质量保证工作。 当托pipe解决scheme没有正确拉取.htc文件时,我已经看到类似的情况。 我通常使用的解决scheme是包含一个.htacces文件: AddType text/x-component .htc 。 虽然这通常起作用,但QA服务器没有.htaccess文件,我的上级担心添加一个会导致无法预料的问题。 你可以看到我想在这里做什么 可以添加一个空的 .htaccess 文件到托pipe,没有一个原因的问题? 如果没有,会不会添加 AddType text/x-component .htc 导致任何问题?
我有一个htpasswd文件,工作正常 – 在我的htaccess我有: <Limit GET POST> require valid-user </Limit> 哪个工作,login/ passwd显示正常,当你到达网站的根源。 然而,我需要限制这个,所以login/ passwd只会出现在用户达到例如http://mywebsite.com/appear/here/* – 所以基本上当用户达到/appear/here/*它应该显示。 。 我看了可以用htpasswd来限制访问一个URL而不是一个特定的文件夹? – 但似乎无法弄清楚.. 试过: <Files /appear/here/*> require valid-user </Files> <Directory /appear/here/*> require valid-user </Directory>
我有几个关于caching网站的问题,因为我之前没有尝试caching网站。 首先是如何caching一个网站,以便客户端浏览网站时加载速度更快。 例如,我有许多图像在我的CSS风格,我该如何caching? 从我之前读过的PHPcaching是通过<head>标签完成的,也可以在.htaccess完成caching(很高兴我正在使用htaccess ^ _ ^)。 我在我的标题中添加了这个标签 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta http-equiv="expires" content="-1"> <meta http-equiv="pragma" content="no-cache">//or content="cache"??? 这也是我的htaccess里面: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> […]