htaccess重写wordpress子目录,将permalinks指向根目录。

问题描述 投票:5回答:3

我有一个wordpress网站安装在 "wp "目录下。我想把它保存在那个文件夹里,以便维护。Wordpress提供了为permalinks创建一个htaccess的选项。你可以看到下面的代码(它的工作)。

我想要的是一个rewriteerule,所以--对访问者来说--网站看起来是在根目录下。我已经改变了rewritebase,但没有工作。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
apache .htaccess mod-rewrite
3个回答
12
投票

1)在你的仪表板,去设置-> 一般,并确保a)wordpress目录-> http:/mydomain.comwp。 b) 网站地址-> http:/mydomain.com

2) 将index.php从子目录移到根目录(MOVE, 不要只是复制)

3) 编辑index.php为

/** Loads the WordPress Environment and Template */
require('./wp/wp-blog-header.php');

其中 "wp "是您的子目录。

4) 删除子目录中的任何.htaccess文件。

5) 将此添加到你的.htaccess根目录下。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

在这种设置下,你的wordpress安装将位于wp目录下。 访客将通过以下方式访问您的网站 http:/mydomain.com. 好运。


2
投票

你会怎么想呢?

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /wp/index.php [L]


RewriteCond %{REQUEST_URI} !^/wp/.*$
RewriteRule ^(.*)$ /wp/$1 [L]

你把所有不存在的东西都重写成wpindex.php,所有非wp文件都重写成wp对应的文件。所以,如果你调用index.php,其实就是wpindex.php。


0
投票

对于一个有两个WordPress博客的网站,一个在网站根目录,一个在子文件夹,即 https:/example.com)。https:/example.comotherblog我是这样做的

<Directory /data/sites/example.com/otherblog>
  <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index.php$ - [L] 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule . /otherblog/index.php [L] 
  </IfModule>
</Directory>


<Directory /data/sites/example.com>
  <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index.php$ - [L] 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule . /index.php [L] 
  </IfModule>
</Directory>
© www.soinside.com 2019 - 2024. All rights reserved.