Apache 到 Nginx 的迁移问题
Apache to Nginx migration problems
谁能告诉我如何将此规则从 apache 重写到 nginx?
我试过很多在线转换器,但都不行。
/酒店/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ resources/ [L]
RewriteRule (.*) resources/ [L]
</IfModule>
/hotel/resources/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php?url= [PT,L,QSA]
</IfModule>
/hotel/resources/index.php
if (!empty($_GET['url'])) {
$GLOBALS['url'] = $_GET['url'];
}
require_once(PROJECT_ROOT . DS . 'config' . DS . 'config.inc.php');
require_once(ROOT . DS . 'hvtengine' . DS . 'library' . DS . 'engine.inc.php');
我试过:
location / {
rewrite ^/$ /resources/ last;
rewrite /^(.*)$ /resources/ last;
# try_files $uri $uri/ /index.php;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /resources/ {
if (!-e $request_filename){
rewrite ^(.*)$ index.php?url= break;
}
}
因为所有请求都被重写为 /resources/
我认为根本没有理由重写。就让它成为服务器的root
。
server {
root /hotels/resources/;
location / {
try_files $uri /index.php?url=$uri;
}
location ~ \.php$ {
# ... php stuff
}
}
谁能告诉我如何将此规则从 apache 重写到 nginx?
我试过很多在线转换器,但都不行。
/酒店/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ resources/ [L]
RewriteRule (.*) resources/ [L]
</IfModule>
/hotel/resources/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php?url= [PT,L,QSA]
</IfModule>
/hotel/resources/index.php
if (!empty($_GET['url'])) {
$GLOBALS['url'] = $_GET['url'];
}
require_once(PROJECT_ROOT . DS . 'config' . DS . 'config.inc.php');
require_once(ROOT . DS . 'hvtengine' . DS . 'library' . DS . 'engine.inc.php');
我试过:
location / {
rewrite ^/$ /resources/ last;
rewrite /^(.*)$ /resources/ last;
# try_files $uri $uri/ /index.php;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /resources/ {
if (!-e $request_filename){
rewrite ^(.*)$ index.php?url= break;
}
}
因为所有请求都被重写为 /resources/
我认为根本没有理由重写。就让它成为服务器的root
。
server {
root /hotels/resources/;
location / {
try_files $uri /index.php?url=$uri;
}
location ~ \.php$ {
# ... php stuff
}
}