httpd.conf 并设置别名

httpd.conf 并设置别名

我正在尝试在 httpd.conf 文件中设置一个别名,以便我可以通过浏览器查看日志文件。以下是我正在尝试创建的别名。

Alias /logs "/<servername>/log"
<Directory /<servername>/log>
  Options Indexes FollowSymLinks
  AuthName "Application Logs"
  AuthType Basic
  AuthUserFile /<servername>/ihs/610/conf/.htpasswd
  <Limit GET POST>
     require valid-user
  </Limit>
</Directory>

这在我的开发机上运行正常,但在生产机上运行不正常。不同之处在于,在我的生产机上,我的应用程序安装的上下文根为/。当我输入我的 URL 并添加别名(例如mysite.com/logs)时,我看到的不是日志目录,而是我的自定义 404 错误页面。

我认为这是因为我没有使用上下文根或仅仅/针对我的应用程序,并且所有请求都会被应用程序延迟。

有什么解决方法吗?

答案1

类似这样的事情应该可以工作:

你应该放,而不是某种:)它应该像“/home/httpd/www/logs/”或“/var/log/apache/log/”。

并且目录最好以“/”结尾。这在某些配置中可能很重要。

Alias /logs/ "/<path to your directory>/log/"
<Directory /<path to your directory>/log/>
  Options Indexes FollowSymLinks
  AuthName "Application Logs"
  AuthType Basic
  AuthUserFile /<path to your directory>/ihs/610/conf/.htpasswd
  <Limit GET POST>
     require valid-user
  </Limit>
</Directory>

答案2

假设您的“应用程序”是某种 Django/PHP/Perl 之类的东西,它可以自行完成所有 URL 处理,对吗?根据配置方式,您可能需要将此配置移至配置文件中的较早位置,或者如果您的应用程序是使用 RewriteRules 设置的,请添加例外以允许此前缀通过而不触发您的应用程序。

答案3

如果我理解正确的话,您正在使用单独的 httpd.conf 或 .htaccess 将 URL 路由到您的应用程序......如下所示:

RewriteRule ^(.*)$ /index.php?route=$1

您应该能够将 .htaccess 文件添加到日志目录中并关闭重写,或者添加

RewriteCond %{REQUEST_URI} !^/logs
RewriteRule ... as above...

相关内容