我有一个使用htaccess的脚本,但是当我安装它时,nginx服务器不起作用。我已经从在线网站将htaccess转换为nginx,但是没有用。有人可以帮我convert依吗?
htaccess代码在这里:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
ErrorDocument 404 http://website.com/404.php
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=302,NE,L]
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*)index\.php$ /$1 [L,R=302,NC,NE]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^status/([\w-]+)/?$ status.php?msgID=$1 [L,QSA]
RewriteRule ^hashtag/([^/]+)/?$ hashtags.php?tag=$1 [L,QSA]
RewriteRule ^settings/([\w-]+)/?$ settings.php?set=$1 [L,QSA]
RewriteRule ^credit/([\w-]+)/?$ buyCredit.php?cr=$1 [L,QSA]
RewriteRule ^account/([\w-]+)/?$ sources/index.php?get=$1 [L,QSA]
RewriteRule ^dashboard/([\w-]+)/?$ admin/index.php?set=$1 [L,QSA]
RewriteRule ^profile/([^/]+)/?$ profile.php?username=$1 [L,QSA,NC]
RewriteRule ^profile/(followers|friends|saved|stories)/([^/]+)/?$ $1.php?username=$2 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin '*'
</IfModule>
这是转换后的nginx代码:
# nginx configuration
error_page 404 http://website.com/404.php;
location / {
if ($request_method !~ "POST"){
rewrite ^(.*)$ /%1 redirect;
}
if ($request_method !~ "POST"){
rewrite ^/(.*)index\.php$ /$1 redirect;
}
if (-e $request_filename){
rewrite ^/status/([\w-]+)/?$ /status.php?msgID=$1 break;
}
rewrite ^/(.+?)/?$ /$1.php break;
}
location /hashtag {
rewrite ^/hashtag/([^/]+)/?$ /hashtags.php?tag=$1 break;
}
location /settings {
rewrite ^/settings/([\w-]+)/?$ /settings.php?set=$1 break;
}
location /credit {
rewrite ^/credit/([\w-]+)/?$ /buyCredit.php?cr=$1 break;
}
location /account {
rewrite ^/account/([\w-]+)/?$ /sources/index.php?get=$1 break;
}
location /dashboard {
rewrite ^/dashboard/([\w-]+)/?$ /admin/index.php?set=$1 break;
}
location /profile {
rewrite ^/profile/([^/]+)/?$ /profile.php?username=$1 break;
rewrite ^/profile/(followers|friends|saved|stories)/([^/]+)/?$ /$1.php?username=$2 break;
}