htacces多个重写规则不适用于RewriteCond%{QUERY_STRING}^$



因此,我创建了一个htaccess文件

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /?paramOne=$1 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /?paramOne=$1&paramTwo=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /?paramOne=$1&paramTwo=$2&paramThree=$3 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /?paramOne=$1&paramTwo=$2&paramThree=$3&paramFour=$4 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /?paramOne=$1&paramTwo=$2&paramThree=$3&paramFour=$4&paramFive=$5 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /?paramOne=$1&paramTwo=$2&paramThree=$3&paramFour=$4&paramFive=$5&paramSix=$6 [L]

原因是有多个相同的东西,这样我就不必填写所有的url参数,

唯一的问题是,即使使用这种方法,,我仍然得到404页

如果我对所有参数使用1个重写方法,我必须填写每个参数,

我怎样才能避开这件事?

谢谢!

您的所有规则都使用相同的模式,这是不对的。

应该这样写:

RewriteEngine On
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/?$ ?paramOne=$1 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ ?paramOne=$1&paramTwo=$2 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/([^/]=)/?$ ?paramOne=$1&paramTwo=$2&paramThree=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ ?paramOne=$1&paramTwo=$2&paramThree=$3&paramFour=$4 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ ?paramOne=$1&paramTwo=$2&paramThree=$3&paramFour=$4&paramFive=$5 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ ?paramOne=$1&paramTwo=$2&paramThree=$3&paramFour=$4&paramFive=$5&paramSix=$6 [L,QSA]

最新更新