我目前在.htaccess文件中使用以下代码
RewriteEngine On
RewriteBase /
# Redirect languages
RewriteRule ^(en|es|zh\-tw|zh\-cn)/?$ index.php?lang=$1 [L]
使用该代码,每次我在URL的末尾输入/en
时,它会将我重定向到/?lang=en
(从PHP数组加载英文内容):
例如:
example/en
将我重定向到example/?lang=en
,同时在网址中保留example / en。
但我也有一个 thanks.php 页面,上面的代码显然适用于 index.php 页面。
如何让重写规则适用于index.php
和thanks.php
页?
答案 0 :(得分:0)
最直接的方法就是这样做:
RewriteRule ^(en|es|zh\-tw|zh\-cn)/?$ index.php?lang=$1 [L]
RewriteRule ^thanks/(en|es|zh\-tw|zh\-cn)/?$ thanks.php?lang=$1 [L]
如果你想使它更通用,你可以选择白名单文件,如下所示:
RewriteCond $1 ^(thanks)/$ [OR]
RewriteCond index ^(index)$
RewriteRule ^(.+/)?(en|es|zh\-tw|zh\-cn)/?$ %1.php?lang=$2 [L]
...其中(thanks)
将是您希望拥有此功能的文件的竖线分隔列表,或者您可以接受每个请求作为现有PHP页面的传递:
RewriteRule ^(en|es|zh\-tw|zh\-cn)/?$ index.php?lang=$1 [L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?[^/]?)/(en|es|zh\-tw|zh\-cn)/?$ $1.php?lang=$2 [L]