Help with Apache .htaccess file
Trying to convert my .htaccess file to NGINX notation.
I've read the online help guides but am still struggling.
Would anyone mind helping. My .htaccess is:
Options -Indexes
Options +FollowSymLinks
# Enable ETag
FileETag none
# Set expiration header
ExpiresActive on
ExpiresDefault A2592000
Header append Cache-Control "public"
# Compress some text file types
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/x-javascript text/javascript application/javascript application/json
# Deactivate compression for buggy browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Set header information for proxies
Header append Vary User-Agent
########################################################
# Rewrite Rules
########################################################
RewriteEngine on
# Require SSL (HTTPS) on the signup page
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} ^/signup/?
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
# Redirect /signup/plan or /signup/plan/ -> /signup/index.php?account_type=plan
RewriteRule ^signup/([A-Za-z]+)/?$ /signup/index.php?account_type=$1 [NC,L]
# Redirect /home/123 or /home/123/ -> home.php?home_id=123
RewriteRule ^home/([0-9]+)/?$ home.php?home_id=$1 [NC,L]
# Redirect /homes/ in case someone made a typo when it should have been /home/
RewriteRule ^homes/([0-9]+)/?$ home.php?home_id=$1 [NC,L]
###########################################################
# Error Handling
###########开发者_开发技巧################################################
#ErrorDocument 400 /
#ErrorDocument 401 /
#ErrorDocument 403 /
#ErrorDocument 404 /
#ErrorDocument 500 /
#################################################
# Default Settings
#################################################
# hide apache server signaute on apache generated pages (e.g. 404)
ServerSignature Off
UPDATE:
For the GZIP compression, this appears to work. But I still haven't figured out how to my my HTTP Rewrites rules yet.
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml;
gzip_disable "MSIE [1-6]\.";
UPDATE 2
I tried replacing my htaccess rewrite rules with the following NGINX rules but this doesn't appear to work. Any ideas what I'm doing wrong?
# Redirect /signup/planname or /signup/planname/ -> /signup/index.php?account_type=planname
rewrite ^signup/([A-Za-z]+)/?$ /signup/index.php?account_type=$1 last;
# Redirect /home/123 or /home/123/ -> home.php?home_id=123
rewrite ^home/([0-9]+)/?$ home.php?home_id=$1 last;
# Redirect /homes/ in case someone made a typo when it should have been /home/
rewrite ^homes/([0-9]+)/?$ home.php?home_id=$1 last;
UPDATE 3
Per the comments below, I now have the following NGINX config but am still having problems
# gzip
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml;
gzip_disable "MSIE [1-6]\.";
# Require SSL (HTTPS) on the signup page
# ====== THIS DOESN'T WORK AND BREAKS NGINX
# I obviously change "example.com" to be my actual domain
if (location /signup/) {
rewrite ^ https://www.example.com$request_uri? permanent;
}
# Redirect /signup/planname or /signup/planname/ -> /signup/index.php?account_type=planname
rewrite ^signup/([A-Za-z] +)/?$ /signup/index.php?account_type=$1 last;
# Redirect /home/123 or /home/123/ -> home.php?home_id=123
# Also, Redirect /homes/ in case someone made a typo when it should have been /home/
rewrite ^/homes?/([0-9]+)/?$ /home.php?home_id=$1? last;
As I see in documentation, your rules (not conds) should be like this:
A:
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} ^/signup/?
RewriteRule ^(.*)$ https://www.example.com/$1
N (see here for more info) :
if (location /signup) {
rewrite ^ https://pma.clinicacgm.0$request_uri? permanent;
}
A:
RewriteRule ^home/([0-9]+)/?$ home.php?home_id=$1
RewriteRule ^homes/([0-9]+)/?$ home.php?home_id=$1
N:
rewrite ^/homes?/([0-9]+)/?$ /home.php?home_id=$1? last;
精彩评论