我pipe理一个内部的Apache2系统,使HTTP浏览和下载连接的文件系统。 我无法控制团队上传的内容的文件,文件types或文件名。 我可以在浏览器中呈现任何可能的东西。 文本,图像,XML等所有工作正常,因为我在httpd.conf的AddType指令中分配一个明确的MIMEtypes。 但是其中一些内容是以编程方式生成的,并没有我可以预测的扩展名,例如:file.name.text_1234。 这些文件总是文本/纯文本,但是我不能添加10k条目AddType .text_NNNN条目到http.conf或/etc/mime.types,而不能分配该内容types。 即使我这样做,我也许会遇到像.text_123456789或.text_abc123def456等扩展,所以明确的条目是不实际的。 有没有什么办法通过通配符或正则expression式分配AddType,甚至强制任何不是设置为内容types的文本/纯文本? 我已经尝试使用像DefaultType,ForceType,FilesMatch,文件和位置相关的指令全球覆盖或匹配一些条件,将分配此types,但没有任何工作。 我尽快补充: AddType text/plain .blabla_123456 ..然后some.file.name.blabla_123456呈现完美后,重新启动Apache。
我是Apache的新手,我想知道是否有一种方法来configurationVirtualDocumentRoot为我的本地服务器上的一个虚拟主机创build一个例外。 目前,我的所有网站都存储在会议sitename.dev文件夹中。 在httpd.conf我基于服务器名称dynamic设置VirtualDocumentRoot : # get the server name from the Host: header UseCanonicalName Off LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog /path/to/logs/access.log vcommon ErrorLog /path/to/logs/errors.log VirtualDocumentRoot /path/to/vhosts/%0 这对我的所有网站都有效,只有一个例外,其中一个站点的文档根目录应该指向exception.dev/src/php而不是exception.dev 。 根据我在这里find的答案 ,听起来好像VirtualDocumentRoot不能根据条件设置。 所以我希望我的问题可以通过设置某种别名来指向exception.dev到正确的目录来解决。 我已经尝试添加VirtualScriptAlias ,但是这阻止了Apache服务器启动: VirtualScriptAlias /path/to/vhosts/exception.dev /path/to/vhosts/exception.dev/src/php 我也尝试过与ScriptAlias和Alias相同的types,但仍然没有运气。 有什么我在这里失踪? 或者是我想要做的不可能? 任何帮助将不胜感激! 哦,如果有帮助,这是我的输出,如果我运行httpd -S : httpd: Could not reliably determine the […]
有人可以看看下面的代码的语法,让我知道如果是正确的 – 我的意图是排除在“允许”部分中指定的IP范围的htaccess,其余所有人在访问该网站时都要求进行身份validation。 这只是“否认”每一个。 允许从指定的IP范围不应该要求htaccess,但它要求每一个htaccess。 任何人都可以证实这一点,并帮助我做这个工作: Options FollowSymLinks AllowOverride None AuthUserFile /etc/.htpasswd AuthGroupFile /dev/null AuthName EnterPassword AuthType Basic require valid-user Order deny,allow Deny from all Allow from 30.21.37. Allow from 113.11.23.23
我在我的Apache 2.4.7安装中有以下configuration脚本: <Directory "/www"> Options Indexes FollowSymLinks AllowOverride All <RequireAll> Require all granted Require not ip ip.range.A ip.range.B </RequireAll> RewriteEngine On RewriteRule ^faq/(\w+)/(\d+)/?$ faq.php?code=$1&num=$2 [NC] ErrorDocument 403 /www/faq.php?code=web&num=403 </Directory> 而且,当我尝试使用其中一个阻止的IP地址查看页面时,我收到此错误: 此外,尝试使用ErrorDocument处理请求时遇到403禁止错误。 因为我想为来客提供两种403服务; 我必须redirectIP范围A和B限制的用户才能显示faq/WEB/403/页面。 有没有办法阻止用户使用这些IP的访问,并显示他们我的自定义ErrorDocument页面? 我尝试使用以下代替requireAll标记( 在RewriteCond指令中定义): RewriteCond %{REMOTE_HOST} ^ip.range.A [OR] RewriteCond %{REMOTE_HOST} ^ip.range.B RewriteRule /faq/WEB/403/ [L,R] 但无济于事。 用户可以在后一种情况下自由访问页面。 当前configuration文件如下(并且没有用户被阻止访问网页): <Directory "/www"> Options Indexes FollowSymLinks AllowOverride […]
我最近成功安装了MaxMind的MaxMindDB apache模块。 我添加了一个名为geoip.conf的新文件到/etc/httpd/conf.d/ ,内容如下: <IfModule mod_maxminddb.c> MaxMindDBEnable On MaxMindDBFile COUNTRY_DB /some/dir/GeoLite2-Country.mmdb MaxMindDBEnv MM_COUNTRY COUNTRY_DB/country/iso_code SetEnvIf MM_COUNTRY US AllowUS Deny from all Allow from env=AllowUS </IfModule> 当运行apachectl -t我得到以下错误: Syntax error on line 11 of /etc/httpd/conf.d/geoip.conf: deny not allowed here 当我评论“拒绝所有”行时,我得到了一个类似的错误,说明allow not allowed here 我无法在网上find任何东西,因为这个模块几乎没有文档。 有谁知道如何解决这一问题?
我被要求为一个大型电子商务网站上的AngularJS应用程序创build一个日志logging解决scheme。 解决scheme本身已经被创build,但是将日志数据实际传输到服务器是有问题的。 我被告知必须将数据发布到特定的URL(例如./logger),并且发送到该URL的数据必须进入Apache日志文件(我知道这不是一个好主意),并且没有替代。 我知道这将需要在Apache中的一些模块,但我是在什么损失。 我已经尝试了mod_dumpio,但它的限制在于它不允许configuration特定的VHost或Directory指令,这意味着进入站点其他区域的敏感数据也将被logging下来,并且随着时间的推移,日志文件将变得巨大。 有没有人做过这样的事情? 编辑:为了澄清,这个解决scheme将在一个现场环境中运行。
我想在Apache 2.4中testingLimitRequestFieldSize的值。 我曾尝试设置它,并想知道是否有从apache调用它的值或直接通过浏览器testing它的直接方式。
我在AWS EC2 Linux实例上安装了Drupal 7.37。 这是完美的工作,直到我重新安装httpd24和PHP 5.5。 从那以后,主页加载完美,但我无法访问我的虚拟目录。 例如,当我点击Drupal的button“login”它尝试加载mypage.com/user/logout (我有干净的url激活),但我得到错误404。 这是我的VirtualHost: <VirtualHost *:80> ServerName www.mypage.com ServerAlias mypage.com DocumentRoot /usr/share/drupal7 </VirtualHost> 和目录: <Directory "/usr/share/drupal7"> AllowOverride None Require all granted </Directory> 我应该在哪里寻找问题? httpd.conf或php.ini? 编辑1:访问日志输出当我尝试访问这些页面之一。 没有错误日志输出: xx.xx.xx.xx – – [14/May/2015:16:35:47 +0000] "GET / HTTP/1.1" 200 18900 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36" xx.xx.xx.xx – […]
目前我有一个Apache2侦听端口80.这是在/etc/apache2/listen.confconfiguration 在/etc/apache2/conf.d我有正常的configuration文件和: site1.conf , site2.conf和site3.conf文件。 每个conf文件configuration非常相似: Alias /site1 /home/user/www/site1/ AddHandler cgi-script cgi <Directory "/home/user/www/site1/"> AllowOverride All Options +ExecCGI <IfModule mod_authz_core.c> Require all granted </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Allow from all </IfModule> DirectoryIndex index.cgi </Directory> 所以去我的浏览器,我可以input: http://10.10.0.1/site1并获取site1, http: //10.10.0.1/site2和获取site2等 这在内部工作正常。 我现在想允许site2和site3被外部访问。 如果我在路由器上打开端口80并将其路由到10.10.0.1,则所有站点都可用。 我已经将8080&8888添加到/etc/listen.conf,并将site2.conf编辑为: <VirtualHost *:8080> Alias /site2 /home/user/www/site2/ AddHandler cgi-script cgi <Directory "/home/user/www/site2/"> AllowOverride All […]
我有一个在Ubuntu上运行的apache2服务器。 我是新来的阿帕奇,所以原谅我说一些不合逻辑的东西。 我有基本的authentication工作,所以我想我只是复制摘要authentication的指令,但我猜这就是我要去哪里错了。 <Directory /home/mark/.www/secret> <Files file1> AuthType Basic AuthName "Secret" AuthUserFile "/etc/apache2/conf-available/.htpasswd" Require valid-user </Files> <Files file2> AuthType Digest AuthName "Secret" AuthUserFile "/etc/apache2/conf-available/.htpasswd" Require valid-user bob </Files> </Directory> 在/ etc / apache2 / mods-enabled中,auth_basic.load已经作为符号连接到/ etc / apache2 / mods-available 因此,我为auth_digest创build了一个符号链接。 但是,当我加载file2时,仍然出现了401错误(是的,我在重新启动服务器时进行更改)。 文件1和文件2都有权限644,就像我说的file1成功与基本身份validation加载。 任何帮助,将不胜感激!