Derzeit verwende ich das Hosting mit Lightspeed- Server. Hosting sagt, mod_rewrite
ist aktiviert, aber ich kann mein Skript dort nicht zum Laufen bringen. Immer wenn ich versuche, auf die URL zuzugreifen, wird die Seite 404 - nicht gefunden zurückgegeben .
Ich habe die gleichen Codes auf einem anderen Server abgelegt, der mit Apache ausgeführt wird. Es funktioniert dort drüben. Also ich denke, es ist das .htaccess
und mod_rewrite
Problem.
Der Hosting-Support besteht jedoch immer noch darauf, dass mod_rewrite aktiviert ist. Daher möchte ich wissen, wie ich überprüfen kann, ob es tatsächlich aktiviert ist oder nicht.
Ich habe versucht, mich zu erkundigen phpinfo()
, aber kein Glück, ich kann es dort nicht finden mod_rewrite
, liegt es daran, dass sie es benutzen lightspeed
?
Gibt es eine Möglichkeit zu überprüfen? Bitte hilf mir. Danke dir.
Zu Ihrer Information: Mein .htaccess
Code ist
Options -Indexes
<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>
Ich habe es auch so versucht
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
Aber das gleiche Ergebnis.
Um zu überprüfen, ob das Modul mod_rewrite aktiviert ist, erstellen Sie eine neue PHP-Datei in Ihrem Stammordner Ihres WAMP-Servers. Geben Sie das folgende ein
phpinfo();
Greifen Sie über Ihren Browser auf Ihre erstellte Datei zu.
CtrlFum eine Suche zu öffnen. Suche nach 'mod_rewrite'. Wenn es aktiviert ist, wird es als "Geladene Module" angezeigt.
Wenn nicht, öffnen Sie httpd.conf (Apache Config-Datei) und suchen Sie nach der folgenden Zeile.
#LoadModule rewrite_module modules/mod_rewrite.so
Entfernen Sie das Nummernzeichen ('#') am Anfang und speichern Sie diese Datei.
Starten Sie Ihren Apache-Server neu.
Greifen Sie in Ihrem Browser auf dieselbe PHP-Datei zu.
Suchen Sie erneut nach 'mod_rewrite'. Sie sollten es jetzt finden können.
quelle
phpinfo()
Feld "Server-API" "CGI / FastCGI" angezeigt wird).phpinfo()
listet die aktivierten Module nicht auf. In diesem Fall lesen Sie, wie Sie in PHP CGI nach mod_rewrite suchen .Wenn Sie eine Konfigurationsdatei für virtuelle Hosts verwenden, stellen Sie sicher, dass der betreffende virtuelle Host über die folgende Anweisung verfügt
AllowOverride All
:Grundsätzlich bedeutet dies, dass alle .htaccess-Anweisungen verarbeitet werden können.
quelle
...
in<Directory ...>
? Was soll ich dort setzen? das Verzeichnis, in dem sich .htaccess befindet?ServerName
, hatte ich den Verzeichnisnamen nicht geändert, danach und nach einem Apache-Neustart war es in Ordnung.Wenn apache_get_modules () nicht erkannt wird oder keine Informationen zu diesem Modul in phpinfo () vorhanden sind; Versuchen Sie, das Umschreiben von Mods zu testen, indem Sie diese Zeilen in Ihre .htaccess-Datei einfügen:
Und mod_rewrite.php:
quelle
Konsole:
quelle
Wenn
Gibt zurück,
true
dann ist Mod-Rewrite aktiviert.quelle
Die perdefinierte
apache_get_modules()
Funktion von PHP gibt eine Liste der aktivierten Module zurück. Um zu überprüfen, ob diesemod_rewrite
Option aktiviert ist, können Sie das folgende Skript auf Ihrem Server ausführen:Wenn das obige Beispiel fehlschlägt, können Sie das Umschreiben von Mods anhand Ihrer
.htaccess
Datei überprüfen .Erstellen Sie eine
htaccess
Datei im Dokumentstamm und fügen Sie die folgende rewriteRule hinzu:Besuchen Sie jetzt http://example.com/HelloWorld . Sie werden intern zur Seite /index.php Ihrer Website weitergeleitet. Andernfalls wird bei Deaktivierung von mod-rewrite ein 500 Internel-Serverfehler angezeigt.
Hoffe das hilft.
quelle
.htaccess
?Sie können dies entweder auf dem Terminal tun:
genommen von 2daygeek
quelle
sudo
Dies funktioniert unter CentOS:
Sollte ausgeben
rewrite_module (shared)
quelle
Wenn sich dieser Code in Ihrer .htaccess-Datei befindet (ohne die Überprüfung auf mod_rewrite.c)
und Sie können jede Seite Ihrer Site mit einem 500-Server-Fehler besuchen. Ich denke, es ist sicher zu sagen, dass Mod Rewrite aktiviert ist.
quelle
Sie können die PHP-Funktion verwenden
und auf mod_rewrite prüfen
http://in2.php.net/apache_get_modules
quelle
Wenn Sie sich in einem Linux-System befinden, können Sie alle Aktivierungsmodule für Apache2 (in meinem Fall) im folgenden Ordner überprüfen: / etc / apache2 / mods-available
zu tippen:
ll -a
wenn Sie die verfügbaren Module für den PHP-Ordner (in diesem Fall PHP 7) überprüfen möchten /etc/php/7.0/mods-available
tippen:
ll -a
quelle
Erstellen Sie einfach eine neue Seite und fügen Sie diesen Code hinzu
und führen Sie diese Seite aus, und finden Sie heraus, ob das Modul verfügbar ist oder nicht. Wenn nicht, können Sie sich an Ihr Hosting wenden. Wenn Sie es auf einem lokalen Computer aktivieren möchten, lesen Sie dieses Schritt-für-Schritt-Tutorial für YouTube, um das Modul zum Umschreiben in Wamp Apache zu aktivieren https://youtu.be/xIspOX9FuVU?t=1m43s Wamp-Server-Symbol -> Apache -> Apache-Module und aktivieren Sie die Option Modul neu schreiben
quelle
Ich weiß, dass diese Frage alt ist, aber wenn Sie Ihre Apache-Konfigurationsdatei
AllowOverride All
von bearbeiten könnenAllowOverride None
quelle
Sie müssen nur durch Eingabe überprüfen, ob die Datei vorhanden ist
cat /etc/apache2/mods-available/rewrite.load
Die Ergebniszeile darf nicht beginnend mit kommentiert werden
#
quelle
Dieser Code hat bei mir funktioniert:
quelle
Ich hatte das genaue Problem, ich löste es, indem ich auf benutzerdefinierte Struktur klickte, dann hinzufügte
/index.php/%postname%/
und es funktionierteIch hoffe, das erspart jemandem den Stress, den ich durchgemacht habe, um herauszufinden, was zum Teufel daran falsch war.
quelle