首页  >  问答  >  正文

apache - RewriteRule重写url的问题

wordpress安装在根目录下的blog文件夹下,所以地址就变成http://mydomain.com/blog
日志路径http://mydomain.com/blog/sample-post/
能不能用RewriteRule把wordpress的路径改为http://mydomain.com/sample-post,隐藏掉blog?
(sample-post不是固定的,是每篇日志的名字,可变的)
看了半天htaccess没看明白到底应该怎么写。
还想请问一下RewriteRule . /index.php [L]这句话的意思
有的人安装wordpress之后路径里会多一个index.php所以要加上这句把index.php去掉
重写规则的语法:

RewriteRule Pattern Substitution [flags]

我看到的一个解释是这样的:

Pattern是一个作用于当前URL的兼容perl的正则表达式
重写规则中的Substitution是,当原始URL与Pattern相匹配时,用以替代(或替换)的字符串

那这不是用index.php代替任意字符(我也不太清楚这个pattern是什么意思,正则里的'.'不是表示任何单字符吗)?

求解释,谢谢~

PHP中文网PHP中文网2713 天前580

全部回复(2)我来回复

  • 習慣沉默

    習慣沉默2017-05-16 17:02:32

    重写规则 ^/blog/([/]+) /$1 [L]

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 17:02:32

    自己解决...

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ blog/ [QSA,PT,L]
    

    虽然去掉url中的blog字段是可以正常访问,但如果通过页面里的链接跳转,网址里还是自带blog,算了我还是把目录搬一下吧...

    回复
    0
  • 取消回复