2014-11-03 3 views
1

Я хотел бы направитьПроблемы с .htaccess

https://pinpoll.net/plugin/getPoll?category_id=27 

в

https://pinpoll.com/plugin/getPoll?category_id=27 

Кроме того, любой незащищенный HTTP: // . . * должны быть перенаправлены на https: //*pinpoll.com например,

http://pinpoll.net/Blog в https://pinpoll.com/Blog или

http://pinpoll.com в https://pinpoll.com

Правила должны не влияют на субдомены как https://dev.pinpoll.com но работать с http://www.pinpoll.net направляется в https://pinpoll.net.

Это то, что моя .htaccess выглядит на данный момент:

RewriteEngine on 

RewriteRule ^(.*)\.[\d]{10}\.(css|js)$ $1.$2 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)\?*$ index.php [QSA] 

RewriteCond %{HTTP_HOST} ^(.*)pinpoll\.de [NC] 
RewriteRule ^(.*)$ https://pinpoll.com/$1 [R=permanent,L] 
RewriteCond %{HTTP_HOST} ^(.*)pinpoll\.at [NC] 
RewriteRule ^(.*)$ https://pinpoll.com/$1 [R=permanent,L] 
RewriteCond %{HTTP_HOST} ^(.*)pinpoll\.us [NC] 
RewriteRule ^(.*)$ https://pinpoll.com/$1 [R=permanent,L] 
RewriteCond %{HTTP_HOST} ^(.*)pinpoll\.co.uk [NC] 
RewriteRule ^(.*)$ https://pinpoll.com/$1 [R=permanent,L] 
RewriteCond %{HTTP_HOST} ^(.*)pinpoll\.net [NC] 
RewriteRule ^(.*)$ https://pinpoll.com/$1 [R=permanent,L] 

RewriteCond %{HTTPS} !on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,QSA] 

</IfModule> 

<IfModule !mod_rewrite.c> 
ErrorDocument 404 index.php 
</IfModule> 

<ifModule mod_expires.c> 

    ExpiresActive On 
    ExpiresDefault "access plus 10 days" 

    <FilesMatch "\.(gif|jpe?g|png)$"> 
     ExpiresDefault "access plus 20 days" 
     Header set Cache-Control "public" 
    </FilesMatch> 

    <FilesMatch "\.(js)$"> 
     ExpiresDefault "access plus 5 days" 
     Header set Cache-Control "public" 
    </FilesMatch> 

    <FilesMatch "\.(php)$"> 
     Header set Cache-Control "private" 
    </FilesMatch> 

</ifModule> 

<IFModule mod_deflate.c> 
    <filesmatch "\.(js|css|html|jpg|jpeg|png|gif)$"> 
     SetOutputFilter DEFLATE 
    </filesmatch> 
</IFModule> 

<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak|cache)$"> 
    Order Allow,Deny 
    Deny from all 
</FilesMatch> 

Пример URL

http://pinpoll.net/plugin/getPoll?category_id=27 

станет

https://pinpoll.com/index.php/getPoll?category_id=27 

... что почти то, что я хочу , но я теряю/плагин /, который вместо этого заменяется на /index.php/. Последнее должно быть лишь в том случае, если ни один файл (! -f), ни папки (! -d) существует, что это не так для требуемого выходного быть

https://pinpoll.com/plugin/getPoll?category_id=27 

Любая помощь/подсказка высоко ценится!

Cheers, Tobias

ответ

0

Вам нужно перестраивать свои правила и поместить это правило:

RewriteCond %{HTTPS} !on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

Просто ниже RewriteEngine On линии и тест в новом окне браузера.

Также поместите это правило ниже другого HTTPS перенаправляет:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ index.php [L] 
+0

Давайте [продолжить это обсуждение в чате] (http://chat.stackoverflow.com/rooms/64243/discussion-between-anubhava-and -Тобиас). – anubhava

+1

Большое спасибо, анубхава! – Tobias

Смежные вопросы