Нужна помощь в объединении двух правил перезаписи с использованием mod_rewrite в .htaccess - PullRequest
0 голосов
/ 15 февраля 2012

Мне нужно соединить два условия перезаписи в одно, которое я нашел при поиске в сети.Проблема в том, что если один работает, другой не будет:

### [RULE1: remove the .php at end of file / url] 
# If requested URL-path plus ".php" exists as a file
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
# Rewrite to append ".php" to extensionless URL-path
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

И

### [RULE2: http to https redirection]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST}
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Очевидно, какое бы правило ни ставилось на вершине.

Так что мне нужен способ удалить расширение php в конце URL, однако, если URL содержит http вместо https, он также должен автоматически перенаправить на https версию скрипта.

Любая помощьбудет с благодарностью!

1 Ответ

0 голосов
/ 16 февраля 2012

Похоже, вы настраиваете каждую страницу для доступа через https.Есть некоторые ошибки, которые я исправил ниже.Сделайте это:

#rule to make both WORK
 RewriteCond %{HTTPS} on
### [RULE1: remove the .php at end of file / url] 
# If requested URL-path plus ".php" exists as a file
 RewriteCond %{DOCUMENT_ROOT}/$1.php -f
# Rewrite to append ".php" to extensionless URL-path
 RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

### [RULE2: http to https redirection]
 RewriteCond %{HTTPS} off
#The next line is not required.
#RewriteCond %{HTTP_HOST}
 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
...