我已經安裝了一個後綴代理和我使用通配符子域DNS以下重寫上:nginx的:重寫PHP不工作
location/{
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php last;
break;
}
}
我的後綴代理具有以下URL格式: (子域和/或域名+域擴展到代理).proxy.org /(Request-URI中爲proxy)
我有這個PHP代碼在我的index.php:
if(preg_match('#([\w\.-]+)\.example\.com(.+)#', $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], $match)) {
header('Location: http://example.com/browse.php?u=http://'.$match[1].$match[2]);
die;
}
但是,當請求一個頁面同.php擴展名,我會得到一個404未找到錯誤:
http://www.php.net.proxy.org/docs.php - HTTP/1.1 404 Not Found
http://www.utexas.edu.proxy.org/learn/php/ex3.php - HTTP/1.1 404 Not Found
,但一切工作(也index.php的工作):
http://php.net.proxy.org/index.php - HTTP/1.1 200 OK
http://www.php-scripts.com.proxy.org/php_diary/example2.php3 - HTTP/1.1 200 OK
http://www.utexas.edu.proxy.org/learn/php/ex3.phps - HTTP/1.1 200 OK
http://www.w3schools.com.proxy.org/html/default.asp - HTTP/1.1 200 OK
有人有一個答案?我不知道爲什麼它不工作,在Apache上它工作正常。
在此先感謝。
您可能需要更改nginx的第一個重定向配置並刪除if-test。 [這被認爲是邪惡的!](http://wiki.nginx.org/Pitfalls#Check_IF_File_Exists) – Zombaya