2017-04-13 42 views
0

我使用此代碼將我的網站從http重定向到https。它的工作將http重定向到https但顯示index.php?cmd =

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

但是,當我刷新,我的網址更改爲:

https://example.com/index.php?cmd= 

這裏是我的.htacess

Options +FollowSymLinks 
Options -Indexes 
ErrorDocument 404 error/404 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?cmd=$1 [L,NC,QSA] 

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

我怎樣才能解決這個問題。由於

(對不起,我不能添加標籤.htacess,所以我選擇PHP標籤)

+0

什麼'重寫規則^(。*)$的index.php?CMD 1 = $ [L,NC,QSA]'爲? – kabanus

+0

你有沒有試過添加'apache'標籤? – Manngo

+0

kabanus ..我真的不知道它是什麼?嘗試禁用,但仍顯示index.php?cmd = – Asamoa

回答

0

這條規則:

RewriteRule ^(.*)$ index.php?cmd=$1 [L,NC,QSA] 

匹配所有字符串:

  1. ^意味着開始url
  2. $意味着結束。
  3. .匹配任何字符和*將盡可能多地重複此操作(包括0)。
  4. 圓括號捕捉字符串中的任何內容 - 因此在主機的根目錄中,(.*)將捕獲任何內容。
  5. $1是什麼被捕獲。由於你刷新了主機的根目錄,因此你什麼都看不到。

無論如何,如果您不需要將所有內容重定向爲命令,請刪除該行並重新啓動Apache服務器。例如

YourWebsite.com/coolStuff 

由線重定向到

YourWebsite.com/index.php?cmd=coolStuff