Unduh file php alih-alih mengeksekusi

Kadang-kadang terjadi ketika mencoba mengakses situs web Anda, alih-alih mengeksekusi file PHP, mereka mencoba mengunduh langsung ke komputer Anda

Dalam posting ini kami akan memberi tahu Anda mengapa masalah ini biasanya terjadi dan bagaimana cara mengatasinya

Mengapa ini terjadi?

Secara umum hal ini dapat terjadi karena ada beberapa konfigurasi di situs atau server yang mencegah interpretasi jenis skrip tertentu dan mengubahnya menjadi file yang dapat diunduh

Alasan paling sering mengapa hal ini terjadi adalah karena ada beberapa instruksi di dalamnya. htaccess yang membatasi interpretasi skrip

Imgur

htaccess

Kode

<IfModule mod_rewrite.c>
RewriteEngine on

#RewriteBase /shopware/

# Https config for the backend
#RewriteCond %{HTTPS} !=on
#RewriteRule backend/(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule shopware.dll shopware.php
RewriteRule files/documents/.* engine [NC,L]
RewriteRule backend/media/(.*) media/$1 [NC,L]

RewriteCond %{REQUEST_URI} !(\/(engine|files|templates|themes|web)\/)
RewriteCond %{REQUEST_URI} !(\/media\/(archive|banner|image|music|pdf|unknown|video)\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ shopware.php [PT,L,QSA]

# Fix missing authorization-header on fast_cgi installations
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

<IfModule mod_alias.c>
    # Block access to VCS directories
    RedirectMatch 404 /\\.(svn|git|hg|bzr|cvs)(/|$)

    # Restrict access to root folder files
    RedirectMatch 404 /(composer\.(json|lock)|README\.md|UPGRADE\.md)$
</IfModule>

# Staging environment
#SetEnvIf Host "staging.test.shopware.in" SHOPWARE_ENV=staging

# Development environment
#SetEnvIf Host "dev.shopware.in" SHOPWARE_ENV=dev
#SetEnv SHOPWARE_ENV dev

DirectoryIndex index.html
DirectoryIndex index.php
DirectoryIndex shopware.php

# Disables download of configuration
<Files ~ "\.(tpl|yml|ini)$">
    # Deny all requests from Apache 2.4+.
    <IfModule mod_authz_core.c>
          Require all denied
    </IfModule>

    # Deny all requests from Apache 2.0-2.2.
    <IfModule !mod_authz_core.c>
        Deny from all
    </IfModule>
</Files>

# Enable gzip compression
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/xml text/plain text/css text/javascript application/javascript application/json application/font-woff application/font-woff2 image/svg+xml
</IfModule>

<Files ~ "\.(jpe?g|png|gif|css|js|woff|eot)$">
    <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault "access plus 1 month"
    </IfModule>

    <IfModule mod_headers.c>
        Header append Cache-Control "public"
        Header unset ETag
    </IfModule>

    FileETag None
</Files>

# Match generated files like:
# 1429684458_t22_s1.css
# 1429684458_t22_s1.js
<FilesMatch "([0-9]{10})_(.+)\.(js|css)$">
    <ifModule mod_headers.c>
        Header set Cache-Control "max-age=31536000, public"
    </ifModule>

    <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault "access plus 1 year"
    </IfModule>
</FilesMatch>

# Disables auto directory index
<IfModule mod_autoindex.c>
    Options -Indexes
</IfModule>

<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

<IfModule mod_php5.c>
#  php_value memory_limit 256M
#  php_value max_execution_time 120
#  php_value upload_max_filesize 20M
   php_flag phar.readonly off
   php_flag magic_quotes_gpc off
   php_flag session.auto_start off
   php_flag suhosin.session.cryptua off
   php_flag zend.ze1_compatibility_mode off
   php_value always_populate_raw_post_data -1
</IfModule>

#   AddType x-mapp-php5 .php
#   AddHandler x-mapp-php5 .php

<IfModule mod_headers.c>
    Header append X-Frame-Options SAMEORIGIN
</IfModule>


Halaman kedua pelanggan yang juga merupakan toko memiliki hal yang sama. htaccess dan bekerja

 

saya punya. php yang saya inginkan agar dapat diunduh oleh pengunjung situs web saya. (Ini sebuah contoh. file php. )

Bagaimana saya bisa mengatur tautan ke contoh. php sehingga diunduh sebagai file yang dapat mereka "simpan" alih-alih dijalankan di server?

(Saya harap itu masuk akal. )

Saya telah berpikir untuk mengganti nama file menjadi “contoh. txt", tapi itu bisa jadi rumit, dan masih tidak memungkinkan mereka untuk menyimpan tanpa terlebih dahulu memilih/menempel, dll

Mengapa file PHP saya diunduh alih-alih dijalankan?

Penyebab paling umum pengunduhan halaman PHP alih-alih ditampilkan di browser adalah nilai AddHandler atau SetHandler yang salah di. file htaccess .

Mengapa situs web mengunduh alih-alih membuka?

Hal ini terjadi bila. file htaccess untuk situs web Anda berisi baris AddHandler yang tidak valid . Untuk mengatasi masalah, cari. htaccess untuk situs web Anda, buka file untuk diedit, cari baris atau baris yang dimulai dengan AddHandler, hapus dan simpan perubahannya.

Bagaimana cara mengunduh file dari PHP?

PHP memungkinkan Anda mengunduh file dengan mudah menggunakan fungsi readfile() bawaan. Fungsi readfile() membaca file dan menulisnya ke buffer output. .
header('Tipe-Konten. aplikasi/aliran oktet');
header("Pengkodean-Transfer-Konten. utf-8");

Bagaimana cara mengunduh file PHP dari URL?

Langkah-langkah mendownload file. .
Inisialisasi URL file ke variabel
Buat sesi Curl
Deklarasikan variabel dan simpan nama direktori tempat file yang diunduh akan disimpan
Gunakan fungsi basename() untuk mengembalikan file basename jika jalur file disediakan sebagai parameter
Simpan file ke lokasi yang diberikan