2017-08-13 82 views
1

我有以下規則:htaccess的重寫規則不工作,我希望

RewriteRule ^(.*)$ index.php?ip=$1 [L] 

但它不工作,取而代之的則是裝載:

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

我缺少的東西?

+0

你是什麼試圖加載? –

+0

當我輸入'https://example.com/[ip地址]'時,它應該加載'https://example.com/?ip=[ip地址]'。這有幫助嗎? –

回答

2

您的規則正在循環,因爲沒有條件停止重寫現有文件和目錄。

後第一改寫成爲:

index.php?id=1.2.3.4 

之後第二重寫URI變爲:

index.php?id=index.php 

您可以使用此規則來解決這個問題:

# If the request is not for a valid directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# If the request is not for a valid file 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?ip=$1 [L,QSA] 
+1

真棒!它現在正在工作。謝謝! –