gpt4 book ai didi

php - 为特定的重写查询添加尾部斜杠

转载 作者:搜寻专家 更新时间:2023-10-31 21:28:21 27 4
gpt4 key购买 nike

我正在研究“ManualTranslation”类(class),但我被困在 .htaccess 部分。

我正在尝试将此查询 ?language=xx 重写为仅 /xx/

到目前为止,我设法让它工作,不确定它是否有任何好处或合适......但它确实缺少一件事。如果出于某种原因——有人试图手动选择语言,请说:

http://domain.com/it 并且忘记添加尾部斜线,我的 .htaccess 片段失败了。因此,如果此查询参数中缺少尾部斜线,它应该会自动添加该斜线。

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([a-zA-Z]{2})/(.*)$ $2?language=$1 [QSA]

所以现在,这只能以这种方式工作:http://domain.com/it/ 但不是 http://domain.com/it 因为缺少尾部斜线,而斜线应该在那里。

如果有人能告诉我我错过了什么?


另外我想知道如果找不到语言,是否有机会用 php 删除重写的查询字符串。现在我基本上只是重定向回当前文件,我对此并不满意......

if ( isset($query) && !$this->isAllowed($query) )
{
header("Location: {$_SERVER['PHP_SELF']}");
exit;
}

最佳答案

您可以调整当前规则以允许不以 / 结尾的 URL:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

## Adding a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{THE_REQUEST} \s/+.*?[^/][?\s]
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]{2})(/.*)?$ $2?language=$1 [QSA,L]

但是请记住,像 http://domain.com/contacts 这样的 URL 将不受上述规则的影响,并且您不会填充 language 参数。

关于php - 为特定的重写查询添加尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33064978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com