Ist so etwas möglich in Apache ... (dh mit dem Pfad zu einer externen URL umleiten wodurch der Fehler 403 entlang geführt)Apache Errordocument Externe Redirect mit Variablen
ErrorDocument 403 http://www.sample.com/{{REDIRECT_URL}}
Ist so etwas möglich in Apache ... (dh mit dem Pfad zu einer externen URL umleiten wodurch der Fehler 403 entlang geführt)Apache Errordocument Externe Redirect mit Variablen
ErrorDocument 403 http://www.sample.com/{{REDIRECT_URL}}
Ich nehme an, es ist möglich, der doc sagen .. http://httpd.apache.org/docs/2.0/mod/core.html#errordocument
Vielleicht so:
ErrorDocument 403 http://www.sample.com/?do=somthing
Das fügt die angeforderte URL nicht hinzu ... Ich dachte, dass ich in meiner Frage klar war. – Pykler
I/Veröffentlichung directo erstellen ry, aber ich will, dass dies von main index.php serviert wird, wo es Dateien in diesem Verzeichnis gibt.
/Die Veröffentlichung? Page = 1 wird von /index.php geliefert, /Publication/file.pdf ist eine Datei, die sich in diesem Verzeichnis befindet.
Apache returend 403 Fehler seit/Publikationsverzeichnis hat keine Berechtigung, aufgelistet zu werden. Wenn Sie den Fehler 403 in /index.php umleiten, können Sie keine Variablen abfangen. Ich denke, REDIRECT_QUERY_STRING Variable kann verwendet werden, aber das würde meine PHP-Klassen durcheinander bringen.
Ich habe mod_rewrite Config geändert, um Directory Serving zu fangen, siehe '#', entfernte ErrorDocument 403 Direktive, da keine Notwendigkeit.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]
</IfModule>
Was ich
/Publication > /index.php?path=Publication
/Publication/?page=1 > /index.php?path=Publication&page=1
/Publication/file.pdf > /Publication/file.pdf
Wo ist dein '.htaccess'? Befindet es sich im '/ Publication'-Verzeichnis? Wenn ja, hast du 'DirectorySlash Off' irgendwo in deinem' .htaccess'? Wie kannst du das sonst sagen?/Publikation> /index.php?path = Publication ', wenn Apache standardmäßig'/Publication' auf '/ Publication /' umleitet, wenn 'DirectorySlash On' gesetzt ist und dann die Regeln umschreiben '/ Publication /> /index.php? path = Publication/'. Ich frage Sie nur, weil ich neugierig auf Ihr Setup bin und ich würde sagen wollen, sagen wir '/ Publication' direkt zu' /index.php? Path = Publication', ohne Apache Redirect zu '/ Publication /'. – tonix
ErrorDocument
Konfigurationsoption haben, leider, nicht unterstützt Server-Variablen Expansion. Was Sie versuchen können, ist lokale Skript, das Redirect für Sie ausgeben wird.
ErrorDocument 403 /cgi-bin/error.cgi
Hinweis, hat das Skript lokal sein, sonst werden Sie bekommen nicht REDIRECT_*
Variablen übergeben. Und selbst in dem Skript können Sie Redirect-Anweisung ausgeben:
#!/usr/bin/perl
my $redirect_status = $ENV{'REDIRECT_STATUS'} || '';
my $redirect_url = $ENV{'REDIRECT_URL'} || '';
if($redirect_status == 403) {
printf("Location: http://%s%s\n", 'www.sample.com', $redirect_url);
printf("Status: %d\n", 302);
}
print "\n";
Siehe Apache-Dokumentation für weitere Einblicke http://httpd.apache.org/docs/2.4/custom-error.html
Ja! Aber beginnen nur mit Apache 2.4.13:
Von 2.4.13, Ausdruck Syntax kann in der Richtlinie erzeugen dynamische Strings und URLs verwendet werden.
(von https://httpd.apache.org/docs/2.4/mod/core.html#errordocument)
Die folgende Konfiguration in einer HTTP-302-Antwort führen wird:
ErrorDocument 403 http://www.example.com%{REQUEST_URI}
Hinweis das Fehlen eines slash weil %{REQUEST_URI}
beginnt mit einem Schrägstrich.
Wobei {{REDIRECT_URL}} die angeforderte URL ist. – Pykler