Apache 使用mod_rewrite(有条件地)在url中插入字符串

Apache 使用mod_rewrite(有条件地)在url中插入字符串,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我正试图实现这种修改: *如果请求uri不是abc或def*请从更改客户端url domain.com/request_uri 到服务器端url domain.com/xyz/request_uri 本质上,我想要的是在用户不知道的情况下向url插入一个字符串,如果他/她不尝试访问某些预定义的url 到目前为止我有 RewriteCond %{REQUEST_URI} ^/abc$ RewriteRule ^(\w+)/?$ xyz/$1 [L] 但这似乎陷入了一个循环(/xyz//xyz

我正试图实现这种修改:

*如果请求uri不是abc或def*请从更改客户端url

domain.com/request_uri
到服务器端url

domain.com/xyz/request_uri
本质上,我想要的是在用户不知道的情况下向url插入一个字符串,如果他/她不尝试访问某些预定义的url

到目前为止我有

RewriteCond %{REQUEST_URI} ^/abc$
RewriteRule ^(\w+)/?$ xyz/$1 [L]

但这似乎陷入了一个循环(/xyz//xyz//xyz…

添加一个条件以检查您正在添加的组件。您可以使用附加的
RewriteCond
或扩展正则表达式。尝试以下方法:

RewriteCond %{REQUEST_URI} !^/?(xyz(/.*)|abc|def)/?$
RewriteRule ^(\w+)/?$ xyz/$1 [L]

添加条件以检查要添加的组件。您可以使用附加的
RewriteCond
或扩展正则表达式。尝试以下方法:

RewriteCond %{REQUEST_URI} !^/?(xyz(/.*)|abc|def)/?$
RewriteRule ^(\w+)/?$ xyz/$1 [L]