我有一个Plesk Onyx服务器,在Centos 7.2上运行,Apache 2.4 Nginx关闭,我有以下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 :(得分: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/
中只有数字命名的现有目录?如果不删除该测试以提高性能。
<强>更新强>
要在.htaccess
中的/folder1/folder2/
文件中进行操作,请将其更改为:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/?$ index.php?get_var=$1 [NC,QSA,L]