htaccess 在文件名之前使用参数重写规则

htaccess rewrite rule with param before filename

我无法使我的重写规则生效。我已经阅读了教程,但没有任何内容清楚地解释了当我不调用根索引时如何在文件名前使用参数。看来我的索引规则覆盖了所有其他规则。

我希望我的索引根据特定标签显示画廊,所以所有这样看的链接都会转到 index.php

www.mawebsite.com/en/tag/karate = www.mawebsite.com?lang=en&tag=karate

这部分工作正常,我的图库加载如我所愿。但是我希望能够使用其他文件。

www.mawebsite.com/en/video/videoid/video-title = www.mawebsite.com/video.php?lang=en&guid=videoid&title=video-title.

这是我的 htaccess 文件到目前为止的样子。

编辑我的文件:

AddCharset UTF-8 .html
ErrorDocument 404 /notfound.html


RewriteBase /
RewriteEngine on
RewriteRule ^(\w\w)/(video)/([^/]+)/([^/]+)/?$ /.php?lang=&guid=&title= [L]
RewriteRule ^fr/video/guid/title$ video.php [L]
RewriteRule fr/tag/([^/]+/.+)$ /?= [L,QSA]
#RewriteRule ^([^/]+)$ index.php?p= [L]

Redirect 301 /css/file.css /css/file.php

我尝试去 video.php 的任何东西都行不通。

尝试以下规则:

RewriteEngine On
RewriteRule ^(\w\w)/(video)/([^/]+)/([^/]+)/?$ /.php?lang=&guid=&title= [L]

重写规则的排序起着非常重要的作用。先保留更具体的规则:

AddCharset UTF-8 .html
ErrorDocument 404 /notfound.html

Redirect 301 /css/file.css /css/file.php

RewriteBase /
RewriteEngine on
RewriteRule ^([^/]+)/?$ index.php?p= [L]
RewriteRule ^(\w\w)/(tag)/([^/]+)/?$ /?lang=&= [L,QSA]
RewriteRule ^(\w\w)/(video)/([^/]+)/([^/]+)/?$ /.php?lang=&guid=&title= [L]