RewriteRule ^$ public/templates/index.php
RewriteRule ^admin/([\w\-]+)$ admin/templates/$1.php [L]
RewriteRule ^admin/search/([^/]+)$ admin/templates/search/index.php?search_query=$1
RewriteRule ^([\w\-]+)/([\w\-]+)$ public/templates/$1/$2.php [L]
想請問一下
這四個 apache 的 rewrite 設定,如果是在 nginx 會怎麼寫才對?
網路上有很多htaccess轉成nginx規則用的在線工具。
可以先試著使用轉換後再放入規則。
不過要切記一件事,轉換後並不一定可以完全使用。
簡單規則還可以。太過麻煩的可能會沒辦法。
還是得先學習一下。
以下是幫你用在線工具轉換過來的。
# nginx configuration
location / {
rewrite ^/$ /public/templates/index.php;
rewrite ^/([\w\-]+)/([\w\-]+)$ /public/templates/$1/$2.php break;
}
location /admin {
rewrite ^/admin/([\w\-]+)$ /admin/templates/$1.php break;
rewrite ^/admin/search/([^/]+)$ /admin/templates/search/index.php?search_query=$1;
}
原來還有轉換工具
想順道問一下
我明明就有開 short_tag ,但是當換成 nginx 跑時,卻失效了?
你要確認一下是不是修改 nginx 裡的php.ini 改完要重開 nginx
怎麼 php 也有 apache 也有 nginx 也有 php.ini...
我透過 phpinfo 找到了,但已經調整成 on 又重新 reload nginx,但還是一樣@@
有點無言了。
改php.ini。是需要重啟php。而不是重啟nginx的。
nginx跟php的搭配大多是用fpm的模式。也就是區塊運做原理。
跟apache不太一樣。
apache的php大多數都是擴展式。所以重啟apache 也會連帶重置php
但如果是區塊運行式的。則是要各別重啟的。
原來是這樣,難怪之前重啟 apache 等同於重整 php
所以安裝 nginx 時也會在安裝一套 php?
浩瀚星空 大說的沒錯
要重啟 php-fpm
不過我都會一起重啟
要看你安裝的方式是如何的。有些套件包會幫你全部nginx、php、mysql一起安裝。
但有的是要一個一個安裝。
我不清楚你的安裝方式。所以無法給你正確答案。
我是用 brew 安裝 nginx 的
所以我剛剛也是用 brew 重啟 php
我一直以為 apache 跟 nginx 是可以讀同一份 php...