我想从规则中排除某些 url,但由于我对 apache 的了解绝对为 0,我似乎无法确定条件。
RewriteEngine On
RewriteCond %{HTTP:X_FORWARDED_PROTO} https
#RewriteCond %{REQUEST_URI} !^/(account|checkout|login)
RewriteCond %{REQUEST_URI} !/account/login.html
RewriteCond %{REQUEST_URI} !/index.php?main_page=password_forgotten
RewriteCond %{REQUEST_URI} !/account/
RewriteCond %{REQUEST_URI} !/account/edit.html
RewriteCond %{REQUEST_URI} !/account/address-book/
RewriteCond %{REQUEST_URI} !^/account/change-password.html
RewriteCond %{REQUEST_URI} !^/account/notifications/
RewriteCond %{REQUEST_URI} !^/index.php?main_page=checkout&fecaction=null
RewriteCond %{REQUEST_URI} !^/index.php?main_page=checkout_shipping_address
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
我相信应该有一种方法可以排除所有包含 /account/ 或 =checkout 但我不知道如何的网址。
也有人可以解释一下 ^ , (.*) , $ 是什么?我认为他们是操作员,但我似乎找不到任何信息,现在也没有时间学习 apache。