2017-07-05 14 views
1

我有一個的Plesk瑪瑙服務器,在CentOS 7.2運行的Apache 2.4 Nginx的關斷時,我有以下的htaccess的.htaccess重寫規則不傳遞參數

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_URI} !(\.js|\.css|\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.ttf|\.woff|\.woff2|\.otf|\.eot|\.ico|\.svg|\.txt|\.xml|\.json)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^folder1/folder2/([0-9]+)/(.*)[/]$ /folder1/folder2/index.php?get_var=$1 [NC,QSA,L] 

的rwwite工程確定,但其未通過get_var 在的index.php我有一個的var_dump($ _ GET),它是空的,如果我訪問 https://sample_domain.com/folder1/folder2/123/

我想要得到的123值到get_var 嘗試禁用-MultiViews並沒有運氣

+0

改變你的'Options'線'選項+的FollowSymLinks -MultiViews' – anubhava

回答

1

該規則根本無法爲您呈現的網址工作。

https://sample_domain.com/folder1/folder2/123// 

或者:這將僅適用於類似的工作

https://sample_domain.com/folder1/folder2/123/example/ 

試試這個:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_URI} !=/folder1/folder2/index.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^folder1/folder2/([0-9]+)/$ /folder1/folder2/index.php?get_var=$1 [NC,QSA,L] 

我去掉不必要的檢查,因爲它只能是一個目錄。我猜你甚至不需要那個測試?您是否只有用數字命名的/folder1/folder2/中的現有目錄?如果不刪除該測試以提高性能。

更新

/folder1/folder2/操作該出.htaccess文件,將其更改爲如下:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9]+)/?$ index.php?get_var=$1 [NC,QSA,L] 
+0

我仍然沒有得到$ _GET ['get_var']裏面index.php – charlymz

+0

然後,你必須有一些其他的規則干擾這一點。 – SuperDuperApps

+0

多數民衆贊成在所有我有重寫規則 – charlymz