我目前有一个运行 Apache2 的 ubuntu 服务器,并运行我的 wordpress 站点。 目前它只是一个全新安装的 WordPress 站点,已成功全新安装。
一切正常,我可以使用网站 URL 示例“www.mydomain.com”访问该网站。
- 我想做的事:
我想修改这个项目,以便只有当用户访问 “www.mydomain.com/mysite” 时才能访问这个特定的 WordPress 站点,换句话说,如果用户访问 www.mydomain.com站点未加载/未找到,但是如果他们在 url 末尾键入 /mysite,则 WordPress 站点将正常运行(包括所有图像、管理员登录 url 等将与 /mysite 一起使用。所以基本上该站点托管在 www.mydomain.com/mysite。
-我不需要什么:
我不希望使用 mysite.mydomain.com 等子域执行此操作(据我所知,通过 dns 控制这将非常容易)
-我已经尝试过的: 我尝试将数据库中的站点和主页网址更改为 www.mydomain.com/mysite 并在下面添加以下 htaccess 文件,但是当我执行此操作并转到 /mysite 时,我收到错误
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request.
我尝试过的 htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /mysite/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /mysite/index.php [L]
</IfModule>
此外,如果我完全删除 .htaccess 并将数据库中的站点和 url 保留为“mydomain.com/mysite”,那么我自然会收到“未找到”错误,而不是上面的错误。
是否有理由在服务器根目录上安装Wordpress并尝试使用.htaccess重写/mysite请求以从根目录读取?
在所需路径而不是服务器根目录中安装 Wordpress 是一件简单的事情。
因此,如果您想让站点仅在输入 URL“www.mydomain.com/mysite”时可见,请将 Wordpress 安装在名为“mysite”的文件夹中,并确保根目录中没有其他文件(位于与“mysite”文件夹本身相同的级别)。然后,导航到 www.mydomain.com/mysite 并完成 Wordpress 设置,确保正确输入站点/主页 URL。
如果您确实希望 WordPress 位于根目录上,则需要解决 .htaccess 重写配置问题。以下更简单的重写规则成功地将 /mysite/index.php 的请求重定向到加载 /index.php :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^mysite/
RewriteRule (.*) /$1
</IfModule>
如果您打算将 Wordpress 保留在根文件夹中并让用户输入 URL“www.mydomain.com/mysite”来访问它,那么这会处理您实际描述的尝试执行的操作。您提供的 .htaccess 与此相反,似乎暗示用户将键入 URL,“www.mydomain.com”和“/mysite”应在加载页面时由 Apache 附加。这不会导致对“www.mydomain.com”的请求如您所愿“找不到”。
最终,我不确定 .htaccess 能否实现您的帖子似乎要求的解决方案:
即使可以,我非常怀疑一旦 .htaccess 重写发挥作用,Wordpress 漂亮的永久链接能否很好地适应这样的设置。