繁体   English   中英

htaccess 重定向除两个之外的所有 url

[英]htaccess redirect all urls except two

目前我正在将所有 URL 重定向到我的index.html文件:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule .* /index.html [L,R=302]

我想排除两个 URL,例如:

www.mydomain.com/i-am-a-domain
www.mydomain.com/super-cool

我发现了几个排除 URL 的片段,但我无法包含它们,因为它们使用不同的设置(至少我是这么认为的)。

由于RewriteCond设置条件,我想我必须在这里添加一行。 我试过添加:

RewriteCond %{REQUEST_URI} !/(i-am-a-domain|super-cool)\ [NC]

这不起作用。 我怎样才能做到这一点?

将您现有的条件更改为:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/(index\.html|i-am-a-domain|super-cool)/?$ [NC]
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule ^ /index.html [L,R=302]

但是,如果您在此 .htaccess 中还有其他规则,那么我建议使用THE_REQUEST变量,该变量在执行某些内部重写规则后不会被覆盖。

RewriteCond %{THE_REQUEST} !\s/+(index\.html|i-am-a-domain|super-cool)[?\s/] [NC]
RewriteCond %{THE_REQUEST} !\.(gif|jpe?g|png|css|js)\sHTTP
RewriteRule ^ /index.html [L,R=302]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM