Merhaba.


Angular'da localhost üzerinde çalışırken routing'de tanımladığımız yollara direkt erişebiliyoruz ancak build edip sunucuya attıktan sonra anasayfa dışında bir sayfaya direkt giremiyoruz ve "404 Not Found The requested document was not found on this server." ekranı geliyor.


Bu sorunun çözümü: Sunucuda angular projesinin olduğu dizinde .htaccess dosyası oluşturmak ve aşağıdaki satırları bu dosyaya eklemektir.


Apache;

.htaccess

RewriteEngine On
    # If an existing asset or directory is requested go to it as it is
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
    RewriteRule ^ - [L]
    # If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html


Nginx;

try_files $uri $uri/ /index.html;


IIS;

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Angular Routes" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="/index.html" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>


Daha detaylı incelemek için Angular dökümantasyonundaki Server Configuration sayfasını inceleyebilirsiniz.


Teşekkürler.