/ / Як отримати сумісний SSL + mod_rewrite + Zend Framework MVC? - php, zend-framework, mod-rewrite, ssl

Як отримати сумісний SSL + mod_rewrite + Zend Framework MVC? - php, zend-framework, mod-rewrite, ssl

Отже, я отримав сайт ZF MVC і хочу примусити SSL-з'єднання на все під моїм / checkout / Я спробував використати mod_rewrite для цього, так що мій .htaccess буде виглядати так:

RewriteEngine on
RewriteRule (/checkout.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R]
RewriteRule !.(js|ico|gif|jpg|png|css|swf|xml|avi|flv|mov|mp3|wav)$ index.php [L]

Звичайно ж, це робить удар у SSL, але друге правило, що ZF-специфічний і перенаправляє все до sort.php sorta стирає специфікацію протоколу.

На жаль, мій рівень володіння модою mod_rewrite надзвичайно страшний. Може бути, хтось може допомогти мені вирішити це?

Відповіді:

3 для відповіді № 1

Відповідь Тіма Літла в основному є.

Я б змінив його трохи більш суворим у перевірці HTTPS, і прапори потребують роздільника.

RewriteCond %{HTTPS} !^on$
RewriteRule ^/checkout/? https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteRule !.(js|ico|gif|jpg|png|css|swf|xml|avi|flv|mov|mp3|wav)$ index.php [L]

1 для відповіді № 2

Це може допомогти вам, додати лише RewriteCondзастосовувати, якщо з'єднання не SSL, а потім додати "L" варіант до вашого правила перенаправлення, щоб переписати обробку зупиняється на цьому місці (тому останнє правило не перекриває перенаправлення SSL).

RewriteCond %{HTTPS} !on
RewriteRule (/checkout.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [RL]

RewriteRule !.(js|ico|gif|jpg|png|css|swf|xml|avi|flv|mov|mp3|wav)$ index.php [L]