【问题标题】:URL ShortCut RedirectsURL 快捷方式重定向
【发布时间】:2017-06-09 16:15:38
【问题描述】:

这是我用于制作 URL 快捷方式的 .htaccess 命令:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} .(.+)$ 
RewriteRule ^(.) ?open=encyclopedia&letter=$1&term=%1 [R,NC,L]

上面的作品就好了:

example.com/Njumba ➛ example.com/?open=encyclopedia&letter=nj&term=njumba

现在,问题是它只重定向一个字母,而不是两个。 这就是我想要的样子:

example.com/NJ ➛ example.com/?open=encyclopedia&letter=nj

.htaccess 也可以实现这一点吗?

【问题讨论】:

    标签: php .htaccess redirect shortcut


    【解决方案1】:

    您可以改用此规则:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.{1,2}).*$ /?open=encyclopedia&letter=$1&term=$0 [R,NE,QSA,L]
    

    【讨论】:

    • 此命令将我重定向到:/?open=encyclopedia&letter=NJ&term=NJ,而不是 /?open=encyclopedia&letter=NJ&term=Njumba,因此只打开 /?open=encyclopedia,而不是 /?open=百科全书&letter=NJ
    • 不幸的是,我收到的命令是: ?open=encyclopedia&letter=%c4&term=%c4%90 当我输入 example.com/Đ .htaccess 将 Đ 视为 %C4%90,因此它只需要 %C4... 我需要一个解决方法。我有Đ,Ž,LJ,NJ,Č,DŽ,Š。所有不能用命令正常读取/处理的字母。
    • 我更新后的评论是:1) 它适用于 NJ、LJ、Ž、Ć、Č、Š、Đ,但不适用于 DŽ; 2)我将您的代码更新为 - RewriteRule ^(.{1,2}).*$ ?open=encyclopedia&letter=$1 [R,NE,QSA,L] 因为 - 使用您的解决方案 - 它打开了 /?open=encyclopedia&letter=新泽西&term=NJ。
    • 这是塞尔维亚语。只有 现在无法正常工作,其他所有都加载正常。然后你需要合并我上面问题中的命令和你的这个命令,我们就完成了。如果将它们放在另一个下方,它们将无法协同工作。
    • 好吧。感谢您回答的这一部分。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2015-02-19
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    相关资源
    最近更新 更多