我搜索了多个页面、答案和文章,试图正确配置 Apache Alias 和 Wordpress Permalinks,但没有成功。
/var/www/
| - example.com (Custom Web App)
| - blog.example.com (Wordpress)
使用上述结构,我可以毫无问题地访问 Wordpress,包括诸如 之类的永久链接https://blog.example.com/sample-post/
。
我在 Apache 中添加了一个别名,如下所示:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/example.com/public
Alias /blog /var/www/blog.example.com
<Directory /var/www/example.com/public>
AllowOverride all
Options -Multiviews
Require all granted
</Directory>
</VirtualHost>
进行这些更改后,重新启动 apache 并更新WordPress 设置区域中的wordpress address
和,我可以通过所需的 URL 访问该网站,但永久链接返回 404 错误。site address
https://example.com/blog
我发现必须切换到纯 URL 才能加载帖子。我没有对文件进行任何更改.htaccess
,但内容如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
目标是访问 WP 帖子https://example.com/blog/sample-post/
任何帮助都将受到赞赏。
答案1
我通过改变配置解决了同样的问题。
当您使用别名 /blog 时,使用永久链接 example.com/blog/sample-post/ 访问 WP 帖子将被重定向到示例.com由 Apache 提供,因此您会收到 404 错误。
我正在使用反向代理并忽略重定向,我的设置是:
<Location /blog/>
RewriteEngine off
ProxyPass !
</Location>
现在为 Alias/博客我们应该将以下 RewriteRule 更改为 apache 配置以允许永久链接起作用:
<Location /blog/>
RewriteEngine off
ProxyPass !
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
</Location>
这个对我有用。