谁能告诉我如何从apache到nginx重写这个规则?
我尝试了很多在线转换器但是没有工作。
/hotel/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ resources/ [L]
RewriteRule (.*) resources/$1 [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=$1 [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/$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;
}
}
答案 0 :(得分:0)
由于所有请求都被重写为/resources/
,我认为根本没有理由进行重写。只需让它为root
服务器。
server {
root /hotels/resources/;
location / {
try_files $uri /index.php?url=$uri;
}
location ~ \.php$ {
# ... php stuff
}
}