【发布时间】:2022-02-08 20:19:12
【问题描述】:
我正在尝试在 .htaccess 中编写重定向指令以在内部转发所有用户请求,如下所示:
- 语言文件夹中的每个请求都应重定向到带有语言查询字符串的请求文件:
example.com/en/contact.php -> example.com/contact.php?lang=en
- 将任何没有语言路径的请求重定向到默认语言文件夹,如下所示:
example.com -> example.com/en
- 如果与地址一起输入,请删除尾部斜杠:
example.com/en/ to example.com/en
- 对于文件夹项目,每个请求都应指向带有相应查询字符串的 view-project.php 文件:
example.com/en/projects/test -> example.com/view-project.php?lang=en&path=test
这是我的尝试,但如果没有尾部斜杠就无法工作,例如:http://www.example.com/de 并且没有将http://www.example.com 重定向到默认语言文件夹。
RewriteEngine On
RewriteRule ^(en|de)/(.*)$ $2?lang=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^projects/([^/\.]+)/?$ view-project.php?path=$1 [QSA,L]
我怎样才能做到这一点?
这可能是重复的,对此我深表歉意。我到处搜索并阅读了大约 100 篇帖子,但没有找到我要查找的内容。
【问题讨论】:
标签: apache .htaccess mod-rewrite url-rewriting