我有以下rewriterules:
RewriteEngine On
RewriteRule ^([^\-]*)-(.*)-von-(.*)\.html$ $1index.php?filter=$2&marke=$3 [QSA]
RewriteRule ^([^\-]*)-von-(.*)\.html$ $1index.php?marke=$2 [QSA]
RewriteRule ^([^\-]*)-(.*)\.html$ $1index.php?filter=$2 [QSA]
RewriteRule ^(.*)\.html$ $1index.php
前3个规则正在运行,但第四个,只是重写index.php到.html不是。这有什么不对?
编辑:
网址为example.com/folder/subfolder/index.php
在我跟随htaccess的文件夹中:
RewriteEngine on
RewriteRule ^subfolder(.*) subfolder/$1
子文件夹中的htaccess是上面的那个
现在,第一个规则的URL是example.com/folder/subfolder-value1-von-value2.html,对于第二个和第三个规则,它的作用是example.com/folder/subfolder-value1。 html和example.com/folder/subfolder-von-value2.html 因此,对于逻辑,第四条规则也应该在没有参数的情况下工作,但它不起作用
答案 0 :(得分:1)
您不应将$1
添加到规则的第二部分。它会将第一个匹配组附加到index.php
文件名。你目前得到的是' indexindex.php'
如果您只想将index.html重写为index.php,则可以在文件末尾放置以下行。
RewriteRule ^index.html$ index.php [L,NC]
你也可能想从其他行中删除$1
部分。
答案 1 :(得分:1)
将其放在/folder/.htaccess
:
RewriteEngine on
RewriteRule ^subfolder\.html$ subfolder/index.php [L,NC]
RewriteRule ^subfolder(.+) subfolder/$1 [L,NC]
答案 2 :(得分:0)
你可以尝试这个&看?
RewriteEngine on
RewriteRule ^(.*)\.html $1\.php