在具有“帖子名称”永久链接的子目录中为Wordpress设置.htaccess

时间:2015-04-17 15:01:29

标签: wordpress .htaccess mod-rewrite

我正在尝试设置Wordpress安装,其中Wordpress位于子目录中,但子目录总是从URL重写。

我一直在尝试关注其他一些关于这样做的问题/帖子,但其他任何人的解决方案似乎都不适用于我,很多时候他们只是为了这些加载,而不从URL中删除子目录,这对我来说至关重要。

我也希望在本地服务器(http://localhost/wordpress)上实现与本地(http://example-site.com)相同的解决方案。但是,我将从当地的角度解释问题:

我的根文件夹的结构如下:

.htaccess
wp /* contains all wordpress core files */
wp-content /* custom wp-content folder, which is set to be pointed at in my wp-config */
wp-config.php

因此,如果我们忽略.htaccess,则会转到http://localhost/wordpress/wp访问该网站,目标是只需转到http://localhost/wordpress即可访问该网站。

这是使用此.htaccess:

实现的
RedirectMatch 302 /wp/$ /wordpress/$1

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /wordpress/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ wp/$1
    RewriteRule ^(/)?$ wp/index.php [L]
</IfModule>

但是,此时,我的wordpress安装设置为使用默认永久链接,这会创建像http://localhost/wordpress?p=12这样的页面。我需要将其设置为不同的永久链接类型,它使用URL段而不是查询参数,例如http://localhost/wordpress/hello-world。一旦更改了该设置,我就无法再使用.htaccess访问其他页面了(虽然主页仍然可以正常工作)

我尝试使用此.htaccess:

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

现在导致子页面加载,虽然主页不再加载,也没有一些资产文件,如http://localhost/wordpress/wp-includes/css/admin-bar.min.css

我似乎找不到能让所有事情同时发挥作用的解决方案!

我还想提一下,我对写.htaccess文件的理解非常少,所以如果有人要回答这个问题,请解释一下像我这样的白痴,否则我可能不会理解你

1 个答案:

答案 0 :(得分:0)

我正在考虑您已将域重定向到relavant文件夹,或者在共享主机上,您已将域设置为指向您的子文件夹。我也在考虑你将htaccess添加到root。以下是适合您情况的官方代码的代码。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?YourDomain.com$
RewriteRule ^(/)?$ blog [L]

将yourdomain.com和博客替换为网站地址和目录。从文件中删除其他所有内容。然后转到设置&gt;永久链接并将固定链接更改为您想要的内容。