我想更改显示的客户端 URL 的结构。我不太熟练使用 .htaccess 文件的正则表达式和编码。基本上,我有一个看起来像这样的结构:
www.abc.com/login/?lang=es
我希望它在地址栏中显示为:
www.abc.com/login/es
所以请告诉我如何覆盖我的 .htaccess 文件中的现有 url。
谢谢
编辑
我的目录列表
`
我的项目
------------- >我的申请
------------- >settings/url 目录
媒体
模板`
我想更改显示的客户端 URL 的结构。我不太熟练使用 .htaccess 文件的正则表达式和编码。基本上,我有一个看起来像这样的结构:
www.abc.com/login/?lang=es
我希望它在地址栏中显示为:
www.abc.com/login/es
所以请告诉我如何覆盖我的 .htaccess 文件中的现有 url。
谢谢
编辑
我的目录列表
`
我的项目
------------- >我的申请
------------- >settings/url 目录
媒体
模板`
您需要做的第一件事是浏览所有代码并将登录链接更改为如下所示:
www.abc.com/login/es
它将为您节省额外的连接和重定向。
然后,您需要www.abc.com文档根目录中的 htaccess 文件中的规则,以便在发出请求时将客户端重定向/login/?lang=something到看起来更漂亮的 URL:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /login/?\?lang=([^&\ ]+)
RewriteRule ^ /login/%2? [L,R=301]
然后,您需要规则在内部将看起来更好看的 URL重写回具有查询字符串的 URL:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?login/(.*)$ /login/?lang=$1 [L]
如果基本 URI 已更改(例如,更改/login为/login/es),您可能需要在登录页面中包含基本 URI,以便相关链接仍能正确解析。您可以通过在页面标题中添加此标签来做到这一点:
<base href="/">