我正在將應用程序從Apache移動到nginx,並且我被重寫部分卡住了。將htaccess重寫轉換爲nginx重寫
在我的Apache .htaccess中,我有這個。基本上,將一切,包括查詢變種以我的index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?p=$1 [QSA,L]
裏面的index.php我有一個非常基本的部分,打破下來,所以我可以路線訪問者,他們需要去哪裏,也處理查詢變種
if (isset($_GET['p'])) {
$page = explode('/', $_GET['p']);
} else {
$page = NULL;
}
而且在腳本後
if ($page) {
} if ($page[0] == "stream") {
if (isset($page[1])) {
// Blah
}
}
}
同樣在各種主題的PHP文件,我已經抓住我的URL與$_GET['id']
或瓦爾做各種功能。
例如http://example.com/verify?code=blah
該URI進入index.php,驗證被發現是一個名爲verify.php
的主題文件,在verify.php
內抓取代碼url var。
我正在尋找與nginx一起復制,並陷入困境。我已經試過以下:
location/{
# try_files $uri $uri/ =404;
rewrite ^(.*)/?$ index.php?p=$1 last;
# try_files $uri $uri/ /index.php?p=$args;
# try_files $uri $uri/ /index.php?p=$query_string;
}
我甚至試過example from this answer,但仍然沒有工作。
在這裏,我試圖把它應用到我的設置:
location/{
rewrite ^(.*)/?$ index.php?p=$1 last;
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^(.*)/?$ index.php?p=$1 last;
}
的註釋的部分是我的試驗和錯誤。關於如何將Apache複製到nginx格式的任何見解?
您可以將其標記爲重複。起初那個引用的答案並沒有解決我的問題,但最終確實如此。感謝 – Pat