如何从命令行测试“.htaccess”

如何从命令行测试“.htaccess”

我正在尝试找出阿帕奇间歇性的原因内部服务器错误在 MediaWiki 编辑和上传期间。一些消息来源告诉我要检查.htaccess错误。

我可以.htaccess通过以下方式进行审核:

sudo find /var -name '.htaccess' -exec ls -al {} \;

但是,我不知道 Apache 命令是什么来测试该.htaccess文件。也就是说,我不知道要在-exec的部分插入什么find

我看过apachectl并尝试过apachectl test,但它看起来像是一个死胡同:

$ apachectl test
Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
                       [-C "directive"] [-c "directive"]
                       [-k start|restart|graceful|graceful-stop|stop]
                       [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]
Options:
  -D name            : define a name for use in <IfDefine name> directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed vhost settings
  -t -D DUMP_RUN_CFG : show parsed run settings
  -S                 : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG
  -t -D DUMP_MODULES : show all loaded modules 
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files
  -T                 : start without DocumentRoot(s) check
  -X                 : debug mode (only one worker, do not detach)

我可以通过 SSH 访问该盒子,这就是我执行维护的方式。没有可用的浏览器,但如果需要的话我可能可以使用 lynx。

如何.htaccess从命令行测试下面显示的各种内容?


$ sudo find /var -name '.htaccess' -exec ls -l {} \;
-rw-r----- 1 root apache 180 Aug  9  2015 /var/www/html/wiki/images/.htaccess
-rw-r----- 1 root apache 14 Aug  9  2015 /var/www/html/wiki/images/deleted/.htaccess
-rw-r----- 1 root apache 14 May 25  2015 /var/www/html/wiki/languages/.htaccess
-rw-r----- 1 root apache 14 May 25  2015 /var/www/html/wiki/serialized/.htaccess
-rw-r----- 1 root apache 14 May 25  2015 /var/www/html/wiki/cache/.htaccess
-rw-r----- 1 root apache 14 May 25  2015 /var/www/html/wiki/includes/.htaccess
-rw-r----- 1 root apache 14 May 25  2015 /var/www/html/wiki/maintenance/archives/.htaccess
-rw-r----- 1 root apache 14 May 25  2015 /var/www/html/wiki/maintenance/.htaccess
-rw-r----- 1 root apache 180 Aug  9  2015 /var/www/html/.htaccess

$ apachectl -v
Server version: Apache/2.4.6 (CentOS)
Server built:   May 12 2016 10:27:23

答案1

如何从命令行测试 .htaccess?

与不在命令行上使用 HTTP 请求的方式完全相同。

有一些常用工具对此很有用,例如(但不限于)curlwget。这两个工具都包含获取标头、HTTP 返回代码和完整输出的选项。

如果您需要将其集成到自动搜索中,则必须进行简单的文本替换或映射,例如:

basename `dirname /var/www/www.mysite.com/public`

...输出:

www.mysite.com

根据您的评论显示......的实际路径

echo www.yoursite.com/`dirname /var/www/html/wiki/serialized/.htaccess|cut -d/ -f5-`

...会给你:

www.yoursite.com/wiki/serialized

所以最终的命令可能是:

wget $(echo www.yoursite.com/`dirname /var/www/html/wiki/serialized/.htaccess|cut -d/ -f5-`)

相关内容