Flarum v1.x altyapısı kullanan websayfalarında www olan ve olmayan URL ile browserlardan yapılan girişler arasında ikonların kırılması (görünmemesi), web dünyasının klasik CORS (Cross-Origin Resource Sharing), yani kökenler arası kaynak paylaşımı politikalarından kaynaklanan bir problem olduğu düşünülmektedir.
Flarum, config.php dosyanızda tanımlı olan ana URL'yi (örneğin https://domainname.com) baz alır. Siteye www ile girildiğinde, tarayıcı font ikonlarını (FontAwesome) ana domainden çekmeye çalışır ve bunu "farklı bir site" (kural dışı kaynak) olarak algılayıp engeller.
Çözüm:
- İlgili sayfanın Flarum ana dizinindeki config.php dosyasını açın.
'url' => 'https://domainname.com', satırını bulun (kendi alan adınıza göre düzenleyin). Ve buraya girişlerin www ile mi www olmadan mı girileceğine karar verip kendinize uygun olanı düzenleyin.
- www adresini ana domaine 301 yönlendiriyoruz.
Nginx için:
server {
listen 80;
listen 443 ssl http2;
server_name www.domainname.com;
return 301 https://domainname.com$request_uri;
}
Apache için .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domainname\.com$ [NC]
RewriteRule ^(.*)$ https://domainname.com/$1 [L,R=301]
- Flarum cache temizliyoruz.
php flarum cache:clear
Solution for Icon Fonts Not Displaying in Flarum v1.x!
On websites using the Flarum v1.x infrastructure, it is believed that the issue where icons break (do not appear) when accessing the site through browser URLs with and without www is caused by the web’s classic CORS (Cross-Origin Resource Sharing) policy.
Flarum uses the primary URL defined in your config.php file (for example, https://domainname.com) as its base. When the site is accessed with www, the browser attempts to load font icons (FontAwesome) from the main domain and may treat it as a “different site” (an unauthorized source), blocking the request.
Solution:
- Open the
config.php file located in the Flarum root directory.
- Find the line
'url' => 'https://domainname.com', (adjust it to match your own domain). Decide whether your site should be accessed with www or without www, and configure it accordingly.
- Redirect the
www address to the primary domain with a 301 redirect.
For Nginx:
server {
listen 80;
listen 443 ssl http2;
server_name www.domainname.com;
return 301 https://domainname.com$request_uri;
}
For Apache (.htaccess):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domainname\.com$ [NC]
RewriteRule ^(.*)$ https://domainname.com/$1 [L,R=301]
- Clear the Flarum cache.
php flarum cache:clear
Buna benzer sizin paylaşmak istediğiniz detaylar da var mıdır? Varsa paylaşabilir misiniz?