我只想知道是否存在与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文件
答案 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