Nginx
將規則從 apache 重寫為 nginx
我對此有疑問…我正在使用免費託管為我自己的 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
看看這是否能完成這項工作
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; }