查找所有apache环境变量的名称和视图

时间:2013-05-03 00:39:50

标签: php apache .htaccess environment-variables

我只想知道是否存在与apache中所有环境变量的链接以及它们打印出来时的样子。

原因是我试图为.htacess mod_rewrite写一些正则表达式,但我不知道这些变量是什么打印的。当我不确定打印什么时,很难写正则表达式,我一直弄错了。 我错过了某个地方的清单。

相信我谷歌搜索比发布问题和等待回复更容易,人们不太确定你的问题。

我似乎无法找到谷歌来源。

例如%{THE_REQUEST} GET /index.php HTTP / 1.1

我遇到的真正问题是我有这个.htaccess文件

    # Do not remove this line, otherwise mod_rewrite rules will stop working

RewriteBase /

Options +Multiviews

AddHandler application/x-httpd-php .css

AddHandler application/x-httpd-php .js

Options +FollowSymLinks
RewriteEngine On


#NC not case sensitive
#L last rule don't process futher
#R 301 changes the url to what you want

RewriteCond %{HTTP_HOST} !^example\.host56\.com 
RewriteRule ^(.*)$ http://example.host56.com/$1 [R=302,L]

RewriteRule ^demo(.*)$ finished$1 [NC]

RewriteCond %{REQUEST_URI} /
RewriteRule ^(.*)$ home/$1

我一直被重定向到错误页面 我想去

example.host56.com/home/

但它一直让我犯错误。主文件夹里面还有一个index.php文件

1 个答案:

答案 0 :(得分:1)

这是一个mod_rewrite变量备忘单:http://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet.html

这里的规则:

RewriteCond %{REQUEST_URI} /
RewriteRule ^(.*)$ home/$1

循环播放。原因是因为%{REQUEST_URI}变量始终以/ 开头,而您没有使用“^”或“$ “表示匹配的边界,以便条件永远为真。由于它始终是真的,因此将始终回复该规则。并且由于重写引擎不断循环直到URI停止更改(或直到您达到内部递归限制,导致500错误),模式始终匹配。尝试将其更改为:

RewriteCond %{REQUEST_URI} !^/home/
RewriteRule ^(.*)$ home/$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ home/$1