所以,我正在尝试添加自己的RewriteRule以及Wordpress已经拥有的内容。一点点背景。我正在开发的网站是基于自定义CMS构建的,但也有一个由WordPress提供支持的博客。那么,到目前为止我所拥有的是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Custom rewrite for locatons
RewriteRule ^locations/(.*)$ /locations2.php?info=$1
# Wordpress rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
我还摆脱了几行似乎不必要的Wordpress Rewrite代码(一切仍然有效......我想)。但是,似乎它覆盖了我写的规则。帮助
哦,而且,我只是试图摆脱/blog/index.php [L]之前的.
并将其替换为^
,它起作用了......的。当我去/ blog /时,它加载了博客,但当我去了/ blog / author / admin之类的东西时,我得到了404。
答案 0 :(得分:0)
您是否尝试在locations2.php之前删除RewriteBase /
和斜杠?
这样的事情:
<IfModule mod_rewrite.c>
RewriteEngine On
# Custom rewrite for locatons
RewriteRule ^locations/(.*)$ locations2.php?info=$1
# Wordpress rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
如果博客无法访问,请在自定义重写后移动RewriteBase /
。另外,我相信如果博客在子目录中,RewriteBase应该是RewriteBase /blog/
答案 1 :(得分:0)
我认为你需要在新规则之后添加最后一个标志[L]
,否则处理将继续,你的请求将被重写为'/blog/index.php'。
RewriteRule ^locations/(.*)$ /locations2.php?info=$1 [L]