0

我有一个很好的规则来将 url 重写为 /meetings,但是当从子目录访问时,该规则不会正确地重写 url。

编辑:我的 .htaccess 文件位于子目录 /blog

当我使用此规则时:...

RewriteRule ^meetings$ /?page_id=2809 [L]

从子域(blog.example.com/meetings)访问时:blog.example.com/meetings

从子目录(example.com/blog/meetings)访问时:404错误

当我使用此规则时:...

RewriteRule ^meetings$ http://blog.example.com/?page_id=2809 [L]

从子域(blog.example.com/meetings)访问时:blog.example.com/meetings

从子目录(example.com/blog/meetings)访问时:blog.example.com/?page_id=2809

有没有办法让规则在子域和子目录中始终如一地工作?

4

1 回答 1

2

您可以在目录中的一个 .htaccess 文件中尝试此操作/blog

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /blog

RewriteCond %{HTTP_HOST}      blog\.example\.com               [NC]
RewriteCond %{QUERY_STRING}   !page_id=                        [NC]
RewriteRule ^meetings         /?page_id=2809                   [L,NC]

RewriteCond %{HTTP_HOST}      ^(www\.)?example\.com            [NC]
RewriteCond %{QUERY_STRING}   !page_id=                        [NC]
RewriteRule ^meetings         /blog/?page_id=2809              [L,NC]

对于永久重定向,将 [L,NC] 替换为 [R=301,L,NC]。

于 2013-03-27T00:14:56.103 回答