我要转换的.htaccess中的
from: website.com/xi/abc
to: website.com/x/?s=abc
用户键入website.com/xi/abc 并且目录abc不存在,我只想要一个看起来更好的url,其中abc只是一个参数,并成为目录x中index.html的参数,参数名称是s,值abc
以下内容无法正常工作。我试图使/ abc只是abc并继续传递
RewriteEngine On
RewriteCond %{QUERY_STRING} ^xi/(.*)$
RewriteRule ^(.+)$ x/index.html?s=$1 [QSA,L,NE]
这是第二次尝试,但也无效:
RewriteEngine On
RewriteCond "%{DOCUMENT_ROOT}/xi/(.*)" -f
RewriteRule "%{DOCUMENT_ROOT}/x/index.html?s=$1" [QSA,L,NE]
答案 0 :(得分:1)
为了满足条件,我在%{QUERY_STRING}
中将%{REQUEST_URI}
换成RewriteCond
。然后,我在RewriteRule
匹配器前面加上了xi/
,以便过滤掉该部分:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/xi/(.*)$
RewriteRule ^xi/(.+)$ x/index.html?s=$1 [QSA,L,NE]
# http://website.com/xi/abc -> http://website.com/x/index.html?s=abc
# http://website.com/other/abc -> No rewrite
在这种简单情况下,您甚至可以省略RewriteCond
:
RewriteEngine On
RewriteRule ^xi/(.+)$ x/index.html?s=$1 [QSA,L,NE]
编辑:我使用了this .htaccess tester。