我无法让我的重写规则发挥作用。我已经阅读了教程但没有解释清楚如何在我没有调用根索引的情况下在文件名之前使用参数。似乎我的索引规则覆盖了所有其他规则。
我希望我的索引根据特定标签显示画廊,所以所有类型的链接都会转到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)/([^/]+)/([^/]+)/?$ /$2.php?lang=$1&guid=$3&title=$4 [L]
RewriteRule ^fr/video/guid/title$ video.php [L]
RewriteRule fr/tag/([^/]+/.+)$ /?=$1 [L,QSA]
#RewriteRule ^([^/]+)$ index.php?p=$1 [L]
Redirect 301 /css/file.css /css/file.php
我试图去video.php
工作的任何事情。
答案 0 :(得分:0)
尝试以下规则:
RewriteEngine On
RewriteRule ^(\w\w)/(video)/([^/]+)/([^/]+)/?$ /$2.php?lang=$1&guid=$3&title=$4 [L]
重写规则的排序起着非常重要的作用。首先保留更具体的规则:
AddCharset UTF-8 .html
ErrorDocument 404 /notfound.html
Redirect 301 /css/file.css /css/file.php
RewriteBase /
RewriteEngine on
RewriteRule ^([^/]+)/?$ index.php?p=$1 [L]
RewriteRule ^(\w\w)/(tag)/([^/]+)/?$ /?lang=$1&$2=$3 [L,QSA]
RewriteRule ^(\w\w)/(video)/([^/]+)/([^/]+)/?$ /$2.php?lang=$1&guid=$3&title=$4 [L]