有人能告诉我如何将这些规则从apache重写到nginx吗?
我试过很多在线转换器,但都不起作用。
/酒店/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ resources/ [L]
RewriteRule (.*) resources/$1 [L]
</IfModule>
/酒店/资源/.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=$1 [PT,L,QSA]
</IfModule>
/酒店/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/$1 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=$1 break;
}
}
由于所有请求都被重写为/resources/
,我认为根本没有理由进行重写。让它成为服务器的root
即可。
server {
root /hotels/resources/;
location / {
try_files $uri /index.php?url=$uri;
}
location ~ '.php$ {
# ... php stuff
}
}