.htaccess-Datei sieht richtig, aber wenn Sie Ihren Webserver DocumentRoot und Ihre Webapp in separaten Ordnern haben, müssen Sie, indem Sie den RewriteBase Pfad in Ihrer .htaccess Datei somthing wie dies bei Verwendung eines Unix-basierten Betriebssystem starten:
RewriteEngine on
RewriteBase /~userName/pathToYourYiiProject/web
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
, wenn Sie keine Ergebnisse erhalten, wenn auf den Pfad manuell aus dem Navigator beitretenden dann müssen Sie prüfen, ob ziemlich Urls zuerst aktiviert werden:
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
],
(überprüfen Mihai Link für yii offizielle Dokumentation)
Überprüfen Sie auch, ob rewrite_module in Ihren Apache-Konfigurationen aktiviert ist. zu ermöglichen und die mod_rewrite in einem Linux-Betriebssystem laden werden Sie diese Skripte starten müssen:
$ cat /etc/apache2/mods-available/rewrite.load
$ sudo a2enmod rewrite
$ ls -al /etc/apache2/mods-enabled/rewrite.load
schließlich daran erinnern, dass die jüngsten Apache-Versionen (ab 2.3.9) haben „AllowOverride None“ vorbelegt werden Sie ändern müssen es zu "AllowOverride All" in /etc/apache2/apache2.conf (wieder Pfad in Linux OS weiß nicht, ob es das gleiche in anderen Betriebssystemen ist). Starten Sie Ihren Apache-Server neu & überprüfen Sie manuell den Pfad in Ihrem Navigator, wenn Sie JSON Format Ergebnisse erhalten, dann funktioniert Ihr Back-End gut & AngularJs sollte in der Lage sein, damit zu kommunizieren.
können Sie uns die URL zeigen, zu welcher eckigen Anfrage und bekommen 404 ?? ist auch 'Konstrukt 'ein Verzeichnisname oder yii2 Controllername? – leninhasda