Articles of apache 2.2

.htaccess RewiteRulevariables问题

我想要创build使用.htaccess的URL的redirect http://shows.example.com/showtitle/sitemap.xml 映射到我现有的文件夹结构是什么样的 http://shows.example.com/sitemaps/sitemap_shows_showtitle_3day.xml 两个variables可以不同的子域和显示标题 所以我写了 RewriteCond %{HTTP_HOST} ^(.*)\.example\.com$ RewriteCond %{REQUEST_URI} ^/([az]*)/sitemap.xml RewriteRule ^(.*)$ http://%1.example.com/sitemaps/sitemap_%1_$1_3day.xml [L] redirect到 http://superstar.example.com/sitemaps/sitemap_superstar__3day.xml 我是否需要将两个RewriteCond合并为一个来访问这两个variables? 或者我可以从这些variables中获得variables吗?

阻止redirect到特定的REQUEST_URI

我已经添加了一个目录到我的网站的公用文件夹,并在其中放置了下面的.htaccess文件: AuthName "Restricted Area" AuthType Basic AuthUserFile /path/to/.htpasswd AuthGroupFile / Require valid-user .htpasswd文件存在并具有有效的内容。 在该站点的公用文件夹中,有一个带有以下重写规则的.htaccess文件: RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php 有了这个设置,我的/protected文件夹不受保护。 如果我不改变重写规则,Apache似乎没有读取我的/protected/.htaccess文件,并且我的/protected文件夹不受保护。 如果我评论重写,试图访问我的/protected目录会导致密码提示,正如所料。 我修改了根.htaccess重写规则,我应该阻止mod_rewrite尝试重写请求到/protected文件夹,如下所示: RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/protected RewriteRule . index.php 但是这似乎没有影响: 该请求似乎是由/index.php处理的,而不是像预期的那样提示authentication细节 /protected文件夹不受保护 该网站的其余部分正常工作 在我的受保护的文件夹中还有一个index.php文件( /protected/index.php ),内容如下: die('protected'); 任何人都可以看到这种方法的问题,或与我的修改根.htaccess重写规则?

来自服务器的太多无法解释的GET请求

我有一个与plesk面板的debian服务器,这个服务器用于一个WordPress的亩安装10K的博客,从Apache的状态,我看到一个无法解释的行为,同一台服务器发送5/10 GET连续请求(5/10每秒)一些博客的url,这是access_log apache的例子 lhost.serverhost.eu – [30 / Jul / 2012:22:43:58 +0200]“GET / HTTP / 1.0”200 49152“ – ”“WordPress / 2.9.2; http:subdomainblog .maindomain。 我必须重新启动Apache来解决问题,但几分钟后问题再次出现。 我validation了我的crontab,并没有问题 NB:请求来自他自己

目录安全与Chrome浏览器失败

我有一个受保护的目录:(从vhost conf文件中提取) <Directory "/var/www/protectedDir"> allow from all Options -Indexes AuthName "secure data" AuthType Basic require user jack AuthBasicProvider file AuthUserFile /home/tracker/protectedDir.sec <Files "mx7.html"> AddType application/x-httpd-php .html </Files> </Directory> 在IE,Firefox,Safari和Opera中加载时,要求input用户名和密码,但是使用Chrome浏览器版本21.0.1180.60 m时 ,安全被绕过,用户被直接发送到受保护的内容。 我清除了Chrome上的caching和所有其他浏览数据项,并且没有任何密码pipe理扩展正在运行。 我很难过 不知道问题是否与我的服务器configuration有关,或只是我的Chrome安装有点奇怪。 有任何想法吗?

使用DBM RewriteMap重写成千上万的传统URL

我正在努力的组织正在实施一个新的CMS。 因此,大量的URL(比方说成千上万)将被重写为新的。 它们中的一些可能被302'ed到新的URI模式,如: RewriteRule ^/articles/articlename.html /new/article/taxonomy/and/such.html [R,L] 其他人,我们将要传递到CMS后端,以便最终用户看到相同的URL,虽然它是从内部的新path提供的,例如 RewriteRule ^/articles/article2.html /content/en/new/article/path/article2.html [PT,L] 我打算把它放在一对FAT DBM rewritemaps中,以便分别处理这两种types,但要比把它们放在那里作为数千个单独的重写规则更快。 我不清楚,如何调用这些,以便mod_rewrite只拾取任何与DBM文件中的键匹配的URL,然后用值replace它。 RewriteEngine on RewriteMap 302_rewrites dbm:/etc/httpd/conf/rewritemaps/dbmtest_302.dbm RewriteRule ^${302_rewrites:$1} ${302_rewrites:$2} [R,L] 以上不起作用。 但是我接近?

对于1域,我怎样才能使用WordPress和Rails?

我已经为example.com安装了Rails,但是,我也想为我的博客使用WordPress。 所以我想example.com/blog是WordPress。 问题是,我想将WordPress放在与Rails不同的目录中,比如/srv/www/example-wp并且在/srv/www/example-ruby有Rails。 我怎样才能分开这个? 我认为这与虚拟主机有关,但我不确定这应该如何工作。 更新: <VirtualHost ip:80> ServerAdmin [email protected] ServerName example.com ServerAlias www.example.com DocumentRoot /srv/www/example-ruby/public/ Alias /blog /srv/www/example-wp/public/ <Directory /srv/www/example-wp/public/> AllowOverride all Order allow,deny Allow from all </Directory> <Directory /srv/www/example-ruby/public/> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews </Directory> </VirtualHost>

在同一个IP上运行SSL和非SSL

我有以下configuration: <VirtualHost 123.0.1.2:80> ServerName website.com DocumentRoot "/var/www/website.com" RewriteEngine on RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R] </VirtualHost> <VirtualHost 123.0.1.2:443> DocumentRoot "/var/www/website.com" ServerName website.com SSLEngine on SSLCertificateFile /var/ssl/testing/server.crt SSLCertificateKeyFile /var/ssl/testing/server.key <Directory "/var/www/website.com"> allow from all Options +Indexes </Directory> SSLVerifyClient none </VirtualHost> 但是,这给了我一个SSL协议错误,如果我删除第一个VirtualHost,我不会得到。 干杯

设置PHP Websockets

我写了一个使用PHP web套接字的游戏,在我的本地开发服务器上运行良好。 我现在试图在非本地服务器上运行Web套接字服务器,但我的客户端JavaScript无法连接。 我试图在干净的Ubuntu Server x64安装 – 我已经安装了apache2,php5,并确保PHP套接字扩展启用; 该服务器非常适合非web套接字的目的。 有没有我错过的configuration设置? 我尝试closures我的防火墙(通过ufw disable )。 任何线索将不胜感激。 编辑 这里是我使用的PHP库: https : //github.com/Flynsarmy/PHPWebSocket-Chat 我已经意识到,我实际上不会需要Apache为我在做什么 – 我只需要传入的请求被接受和解释的PHP。 有没有办法确保所有传入的请求都可以访问我的PHP程序?

configuration了与我的用户目录中的文件夹的sym-linkconfiguration的Apache虚拟主机失败,出现403 Forbidden

我确信有人问过或回答过,但我的search没有帮助我太多,所以… 我在我的Linux机器上安装了Eclipse IDE(LM13),工作空间文件夹位于@ /home/user/projects/workspace 我有Apache的安装和设置,与各种虚拟主机,所有这些文件夹下的Web根/var/www/…下的某个地方/var/www/… 我遇到的问题是,我为Eclipse Workspace中的项目configuration的虚拟主机无法被Apache访问,因此给了我“403 – 禁止 – 您没有权限访问/ on这个服务器“。 首先,我尝试了一个“正常”的vhostconfiguration,然后尝试使用链接到Eclipse工作区中的项目文件夹的web-root @ /var/www/freelance/project下的SymLink 我已经尝试了FollowSymLinks和SymLinksIfOwnerMatch在<directory …>部分下的选项指令,但我仍然无法在浏览器中使用Apache访问它! 任何人都可以向我解释我怎样才能使这个设置工作? 我还没有尝试使用mod_userdir ,或者在我的/home文件夹上设置文件权限,以允许访问Apache,因为这两者似乎都不是有利的。 有另一种方法吗? 这是我的虚拟主机configuration: # Apache VHOST config for IAGD <VirtualHost my.iagd:80> NameVirtualHost my.iagd:80 ServerAlias *.my.iagd # ServerAdmin username@domain DocumentRoot /var/www/freelance/iagd <Directory /var/www/freelance/iagd/> Options FollowSymLinks SymLinksIfOwnerMatch AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.1 </Directory> […]

漂亮的URL与Apache代理

我在我的业务networking上运行一些networking摄像头(带embedded式服务器),这些networking摄像头可以通过networking访问,我想制作Apache可以路由到他们运行的端口的“漂亮”的URL,所以我的妻子不需要记住端口号码。 例如,其中一台摄像机是本地IP 192.168.0.200,而摄像头服务器(我正在使用安卓手机上的IP摄像头 )正在端口7890上运行。我将端口转发给我的路由器,我可以通过networking访问它mydomain.com:7890。 我想要做的就是给它一个像mydomain.com/cam/1一个不错的URL,并有Apache路由到正确的LAN IP /端口。 这在我的httpd.conf也可以正常工作: ProxyPass /cams/1 http://192.168.0.200:7890 ProxyPassReverse /cams/1 http://192.168.0.200:7890 我可以在浏览器中键入mydomain.com/cam/1并获取它提供的html页面。 问题是,它最初服务的页面只是一堆链接,即以下内容: 每个链接都是相对于页面的根。 例如,我通常使用第三个链接,“使用Java浏览器插件”。 这个链接的URL是/java.html 。 如果我使用“绝对”urlmydomain.com:7890/java.html , mydomain.com:7890/java.html预期工作。 但是启用Proxying后,生成的链接是mydomin.com/java.html ,我的根文件夹中没有java.html(即使是我做的,它将是与networking摄像头不同的文件)。 所以我的问题是,如何继续拥有这些漂亮的url,但是在被网页内部的url(或任意的子url)仍然遵守/cams/1偏移量,这样它们都能正常工作?