在子文件夹中找不到 WordPress 永久链接
WordPress Permalinks not found in subfolder
我在根文件夹和子文件夹中安装了 WordPress。我可以访问子域中 WordPress 站点的主页,但 permalinks 不起作用 – 错误 404。我尝试重置 permalinks,但没有帮助。我找不到任何.htaccess文件,所以我自己创建了一个并将其放在子文件夹目录中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /projects/bigsargefitness/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /projects/bigsargefitness/index.php [L]
</IfModule>
这是子文件夹 WordPress 站点的 link:
http://ninahortendesigns.com/projects/bigsargefitness/
我已经把数据库选项设置成上面的方向了
感谢您的帮助。
你需要看一些东西:
- .htaccess 根 WP 站点 (WP1) 中的文件并对其进行编辑,以便 WP1 不会捕获 URLs 并生成 404 错误,我不确定该评论是否有帮助,我'我用 this 回答了类似的问题。
- .htaccess 子 WP 站点 (WP2) 中的文件并将其重命名为 "htaccess.old" 然后登录到您的 wp2/wp-admin,转到 "Settings->Permalinks" 检查 URL 结构根据需要(通常不会更改)并单击页面底部的 "Save"。这将在子目录的上下文中重新生成您的 .htaccess 文件,并且当您访问 this
等子页面时,您不应该收到 404 错误
这是第一个 link 编辑的代码,因此它应该适用于您的网站,但如果您有其他规则,您应该只在评论下方插入该行。
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
# Include in the next line all folders to exclude
RewriteCond %{REQUEST_URI} !(projects) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
如果您有自定义规则,只插入这些行
# Include in the next line all folders to exclude
RewriteCond %{REQUEST_URI} !(projects) [NC]
假设您是一名设计师并且正在上传您构建的网站示例,那么您下次将新网站上传到 wp1/projects/ 子目录时只需执行第 2 步
原因
当无法访问您请求的资源或路径时,会出现错误 404。在这种情况下,可能是因为 URL 重写没有正常工作,因此永久链接请求仍然被定向到请求的路径(例如 /projects/bigsargefitness/your-category/your-post-name)而不是重写的路径(即 /projects/bigsargefitness/index .php).
以下解决方案假设您使用Debian/Ubuntu,否则原则应保持不变。
解决方案
首先确保重写引擎已经安装:
sudo a2enmod rewrite
然后,通过 editing/adding 文件 /etc/apache2/sites-available/your-site.conf
:
中的以下行确保子目录允许引擎
<Directory /var/www/projects/bigsargefitness/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
这里的关键是确保该行显示 AllowOverride All
而不是 AllowOverride None
。
最后,重启你的服务器:
sudo service apache2 restart
如果有帮助请告诉我。
我在根文件夹和子文件夹中安装了 WordPress。我可以访问子域中 WordPress 站点的主页,但 permalinks 不起作用 – 错误 404。我尝试重置 permalinks,但没有帮助。我找不到任何.htaccess文件,所以我自己创建了一个并将其放在子文件夹目录中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /projects/bigsargefitness/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /projects/bigsargefitness/index.php [L]
</IfModule>
这是子文件夹 WordPress 站点的 link: http://ninahortendesigns.com/projects/bigsargefitness/
我已经把数据库选项设置成上面的方向了
感谢您的帮助。
你需要看一些东西:
- .htaccess 根 WP 站点 (WP1) 中的文件并对其进行编辑,以便 WP1 不会捕获 URLs 并生成 404 错误,我不确定该评论是否有帮助,我'我用 this 回答了类似的问题。
- .htaccess 子 WP 站点 (WP2) 中的文件并将其重命名为 "htaccess.old" 然后登录到您的 wp2/wp-admin,转到 "Settings->Permalinks" 检查 URL 结构根据需要(通常不会更改)并单击页面底部的 "Save"。这将在子目录的上下文中重新生成您的 .htaccess 文件,并且当您访问 this 等子页面时,您不应该收到 404 错误
这是第一个 link 编辑的代码,因此它应该适用于您的网站,但如果您有其他规则,您应该只在评论下方插入该行。
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
# Include in the next line all folders to exclude
RewriteCond %{REQUEST_URI} !(projects) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
如果您有自定义规则,只插入这些行
# Include in the next line all folders to exclude
RewriteCond %{REQUEST_URI} !(projects) [NC]
假设您是一名设计师并且正在上传您构建的网站示例,那么您下次将新网站上传到 wp1/projects/ 子目录时只需执行第 2 步
原因
当无法访问您请求的资源或路径时,会出现错误 404。在这种情况下,可能是因为 URL 重写没有正常工作,因此永久链接请求仍然被定向到请求的路径(例如 /projects/bigsargefitness/your-category/your-post-name)而不是重写的路径(即 /projects/bigsargefitness/index .php).
以下解决方案假设您使用Debian/Ubuntu,否则原则应保持不变。
解决方案
首先确保重写引擎已经安装:
sudo a2enmod rewrite
然后,通过 editing/adding 文件
中的以下行确保子目录允许引擎/etc/apache2/sites-available/your-site.conf
:<Directory /var/www/projects/bigsargefitness/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
这里的关键是确保该行显示
AllowOverride All
而不是AllowOverride None
。最后,重启你的服务器:
sudo service apache2 restart
如果有帮助请告诉我。