Может модификация - переписывать использоваться для установки переменных окружения?

Несколько решений существуют, некоторые среди них:

  • у Вас есть файловая система, не делает позволяет Вам, например, uid:gid, например: FAT
  • диск был смонтирован только для чтения
  • SELinux или другие средства обеспечения выполнения безопасности применяются
  • файловая система установлена на режим только для чтения (xfs_freeze, например)
  • файл имеет неизменный набор флага (болтовня человека)
1
задан 27 July 2010 в 18:23
2 ответа

Согласно комментарию в руководстве PHP это возможно. PHP интегрируется как модуль или CGI?

0
ответ дан 4 December 2019 в 02:00

Конечно, возможно установить использование переменных среды mod_rewrite. Используя следующую конфигурацию:

RewriteEngine on
RewriteLog /var/log/httpd/rewrite.log
RewriteLogLevel 5

# if the requested resource does not exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# if the users preferred language is supported...
RewriteCond %{HTTP:Accept-Language} ^.*(de|es|fr|it|ja|ru|en).*$ [NC]
# define an environmental variable PREFER_LANG
RewriteRule ^(.*)$ - [env=PREFER_LANG:%1]    

# route the uri to a front controller
RewriteRule ^(.*)$ /cgi-bin/serverfault.cgi?q=$1 [PT]

Где serverfault.cgi просто сценарий оболочки, который звонит env. Это работает просто великолепно:

$ curl -s -H 'Accept-language: de' http://localhost/serverfault/somefile |
grep PREFER
PREFER_LANG=de

Что делает Ваш RewriteLog быть похожими? Необходимо видеть что-то вроде этого:

init rewrite engine with requested uri /serverfault/foo.html
applying pattern '^(.*)$' to uri '/serverfault/foo.html'
RewriteCond: input='/serverfault/foo.html' pattern='!-f' => matched
RewriteCond: input='/serverfault/foo.html' pattern='!-d' => matched
RewriteCond: input='en-US,en;q=0.8' pattern='^.*(de|es|fr|it|ja|ru|en).*$' [NC] => matched
setting env variable 'PREFER_LANG' to 'en'
applying pattern '^(.*)$' to uri '/serverfault/foo.html'
rewrite '/serverfault/foo.html' -> '/cgi-bin/serverfault.cgi?q=/serverfault/foo.html'
split uri=/cgi-bin/serverfault.cgi?q=/serverfault/foo.html -> uri=/cgi-bin/serverfault.cgi, args=q=/serverfault/foo.html
forcing '/cgi-bin/serverfault.cgi' to get passed through to next API URI-to-filename handler
1
ответ дан 4 December 2019 в 02:00

Теги

Похожие вопросы