我有一个很好的规则来重写url到/ meetings,但是当从子目录访问时规则不会正确地重写url。
编辑:我的.htaccess文件位于子目录/博客
当我使用此规则时:...
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
有没有办法让规则一致地为子域和子目录工作?
答案 0 :(得分:2)
您可以在/blog
目录中的一个.htaccess文件中尝试此操作:
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]。