繁体   English   中英

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

[英]Setting .htaccess for Wordpress in a subdirectory with 'Post name' permalinks

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

我一直在尝试着其他有关此操作的问题/帖子,但是似乎没有其他人的解决方案对我有用,而且很多时候他们只是在不删除子目录的情况下加载页面。 URL,对我来说至关重要。

我还希望有一个与本地服务器( http://example-site.com )相同的本地解决方案( http://localhost/wordpress )。 但是,我将从本地角度解释问题:

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

.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文件了解甚少,因此,如果有人要回答这个问题,请解释一下我是个白痴之类的事情,否则我可能无法理解您。

我正在考虑将域重定向到相对文件夹,或者在共享主机上将域设置为指向子文件夹。 我也在考虑您要将htaccess添加到根目录。 这是来自您的情况的官方法典代码。

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

用网站地址和目录替换yourdomain.com和博客。 从文件中删除其他所有内容。 然后转到设置>永久链接并将永久链接更改为所需的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM