2017-02-18 9 views
0

funktioniert ich so alle PHP Ostereier deaktivieren möchten:.htaccess: deaktivieren Ostereier über .htaccess nicht

www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 

ich diesen Code in .htaccess hinzugefügt:

RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC] 
RewriteRule .* - [F] 

Dies funktioniert für http://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000, aber nicht für https://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000, bedeutet es funktioniert für http:// aber nicht für https://.

ich diese zusätzlich in .htaccess hinzugefügt alle https:// zu http:// umleiten:

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Aber es ist immer noch nicht funktioniert. Das Osterei ist noch zugänglich von https://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000.

Was mache ich falsch?

P.S .: Ich habe keinen Zugriff auf php.ini, um es dort einzurichten.

+0

Sind Sie auch ini-Einstellungen über .htaccess außer Kraft setzen nicht in der Lage? Versuchen Sie dies zu .htaccess hinzuzufügen, wenn Sie sich nicht sicher sind: 'php_value expose_php 0' – Theo

+0

@TheoTonge' php_value expose_php 0' macht 'Internal Server Error' für meine gesamte Domain. – David

+0

klingt, als ob Sie das nicht tun dürfen - siehe meine Antwort unten (andernfalls könnte das eine Einschränkung auf Ihrem Server sein - da dies 'AllowOverride All' erfordert), um Ihre Apache-Konfiguration hinzuzufügen. – Theo

Antwort

0

RewriteEngine on muss vor irgendwelchen Regeln kommen.

Alle aufgeführten Bedingungen gelten für die nächste Regel. durch das L-Flag auf eine Regel hinzufügen, verhindern, dass Sie es von jedem mehr Regeln Überprüfung

aus der Dokumentation:

Das [L] Flag Verarbeitung der Regelsatz mod_rewrite zu stoppen verursacht. In den meisten Kontexten bedeutet dies, dass bei Übereinstimmung der Regel keine weiteren Regeln verarbeitet werden. Dies entspricht dem letzten Befehl in Perl oder dem Befehl break in C. Verwenden Sie dieses Flag, um anzugeben, dass die aktuelle Regel sofort angewendet werden soll, ohne weitere Regeln zu berücksichtigen. https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l

diese So versuchen:

RewriteEngine On 
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC] 
RewriteRule .* - [F,L] 
RewriteCond %{HTTPS} on 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
+0

Entschuldigung, ich habe Ihr Problem nicht vollständig verstanden - ich habe jetzt meine Antwort korrigiert, hoffentlich löst das für Sie! – Theo

+0

Danke, aber leider immer noch das gleiche, funktioniert nicht. – David