我想知道是否有办法实现这种URL重写;
RewriteRule ^example-link-1?$ /blog/example-link-1 [NC,L]
RewriteRule ^example-link-2?$ /blog/example-link-2 [NC,L]
RewriteRule ^example-link-3?$ /blog/example-link-3 [NC,L]
RewriteRule ^example-link-4?$ /blog/example-link-4 [NC,L]
您可以直接转到example.com/example-link-1
等链接,但实际上您显示的是来自example.com/blog/example-link-1
的内容,但我不需要为每个页面添加新规则。在htaccess中有没有动态的方法呢?即;
如果存在('blog /'+ pageURI) 然后重写为'blog /'+ pageURI,但保留uri没有'blog /'。
答案 0 :(得分:1)
确定你能做到:
RewriteRule ^(example-link-[1234])/?$ /blog/$1 [NC,L]
以上4条规则。但总的来说,你可以这样做:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/blog/$1 -f
RewriteRule ^(.+?)/?$ /blog/$1 [NC,L]
如果存在/blog/something
,则会重写为/blog/something
,同时保留不含/blog/
的相同URI。