我对此有一个问题...我正在使用免费托管来为我自己的 cms 的未来买家提供演示。
托管是 hubuhost.com,他们支持最新版本的 php 8.1。问题是他们使用 nginx,不支持我的 apache 的 htaccess 规则。
我的配置是:
<IfModule mod_negotiation.c>
#Important rules for our system
Options -Multiviews -Indexes +FollowSymLinks
</IfModule>
#app.php instead of index.php
<IfModule mod_dir.c>
DirectoryIndex core.php index.php index.html
</IfModule>
#If 404 - redirect to 404 page
ErrorDocument 404 /404/index.php
<IfModule mod_rewrite.c>
#ModRewrite ON
RewriteEngine on
#News SEO Urls
RewriteRule ^topic_(.+?)$ core.php?id=$1
#Router
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ core.php [QSA,L]
#remove end trailing slash from urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.*)/$
RewriteRule ^ /%1 [R=301,L]
</IfModule>
#Block ENV access
<IfModule mod_version.c>
<Files "config.env">
Order allow,deny
Deny from all
</Files>
</IfModule>
有人可以将其转换为 nginx 吗?
我尝试了一些规则,但没有成功。我不知道该怎么办……管理面板的演示图片:https://i.ibb.co/gwZStXN/image.png
答案1
看看这是否能起到作用
autoindex off;
index core.php index.php index.html;
error_page 404 /404/index.php;
location /topic_ {
rewrite ^/topic_(.+?)$ /core.php?id=$1;
}
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /core.php break;
}
if (!-e $request_filename){
rewrite ^(.*)$ /%1 redirect;
}
}
location /config.env {
deny all;
}