Varsayılan olarak Flarum’un dizin yapısı, yalnızca herkesin erişebileceği dosyaları içeren bir public
dizini içerir. Bu, tüm hassas kaynak kodu dosyalarının web kökünden tamamen erişilemez olmasını sağlayan en iyi güvenlik yoludur.
Bu yöntemleri niçin kullanıyoruz:
- Flarum’u bir alt dizinde (
siteniz.com/forum
gibi) barındırmak istiyorsanız,
- Paylaşımlı hosting kullanıyorsanız.
⚠️ 1. yada 2. yöntemi uygulayınız!!!
1. Flarum’un dökümantasyonunda yazılan yöntem ile
Barındırıcınız web kökünüz üzerinde size kontrol vermiyorsa (public_html
veya htdocs
gibi), public
dizini olmadan Flarum’u kurabilirsiniz.
public
dizinindeki (.htaccess
dahil) tüm dosyaları, Flarum’u kurmak istediğiniz dizine taşıyın. Yani bir public
dizinin bir üst dizinine.
Daha sonra hassas kaynakları korumak için;
.htaccess
kullanıyor iseniz aşağıdaki satırların önündeki #
işaretini kaldırın.
RewriteRule /\.git / [F,L]
RewriteRule ^auth\.json$ / [F,L]
RewriteRule ^composer\.(lock|json)$ / [F,L]
RewriteRule ^config.php$ / [F,L]
RewriteRule ^flarum$ / [F,L]
RewriteRule ^storage/(.*)?$ / [F,L]
RewriteRule ^vendor/(.*)?$ / [F,L]
Nginx kullanıyorsanız, .nginx.conf
dosyasındaki aşağıdaki satırların önündeki #
işaretini kaldırın.
location ~* ^/(\.git|composer\.(json|lock)|auth\.json|config\.php|flarum|storage|vendor) {
deny all;
return 404;
}
Ayrıca index.php
dosyasını düzenlemeniz ve aşağıdaki satırı değiştirmeniz gerekecektir:
$site = require './site.php';
Son olarak, site.php
dosyasını düzenleyin ve aşağıdaki satırlardaki yolları yeni dizin yapınızı yansıtacak şekilde güncelleyin:
'base' => __DIR__,
'public' => __DIR__,
'storage' => __DIR__.'/storage',
2. Laravel server.php dosyası yöntemi ile
Flarum kurulu ana dizine server.php
dosyasını yükleyin.
.htaccess
dosyasına bunları ekleyin:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
#If you use SSL:
#RewriteCond %{HTTPS} !=on
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</IfModule>
server.php İndir
Kaynaklar:
https://docs.flarum.org/install.html#customizing-paths
https://github.com/laravel/laravel/blob/8.x/server.php