我不是.htaccess
专家,很少使用它。我在Net和SO上尝试了几个解决方案,但仍然没有成功。所以我有一个IP说1.2.3.4
,它在/var/www/html/
中有我的wordpress应用程序的子文件夹说ABC。DNS已经被设置为使得www.mydomain.com
和mydomain.com
指向IP 1.2.3.4
。
我的内容在.htaccess
文件中,如下所示,它只支持mydomain.com
。除了当我放置www.mydomain.com
时,内容显示为Linux主页之外,其他内容都按预期显示。
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^mydomain'.com$
RewriteCond %{REQUEST_URI} !^/ABC/
RewriteRule (.*) /ABC/$1
当我放入www.mydomain.com
时,浏览器会自动将URL更改为mydomain.com
。
除此之外,我还想拥有www
的所有域。来自mydomain.com
的Means请求将显示为www.mydomain.com
。稍后我将把www.mydomain.com
放在wordpress的URL配置中。感谢您的帮助。
切换回旧的.htaccess代码。在你上次更新后,我更清楚了。您在"public_html/ABC"中有wordpress文件,但需要您的网站url为www.example.com。让我逐步解释。
- 将旧代码粘贴到.htaccess中
- 将index.php和.htaccess文件从/ABC文件夹复制(不要移动)到站点的"public_html"中
- 在"public_html/index.php"中找到一条规则为"require(dirname(FILE).'/wp-blog-header.php');",并将其替换为"require(dirname)(FILE
- 仅将常规设置(设置->常规)中的"网站地址(URL)"更改为"http://www.example.com"
所以我终于得到了我想要使用的以下解决方案。希望这能帮助到一些人:
RewriteEngine on
RewriteBase /
# Whatever request coming to the server, add www to it
RewriteCond %{HTTP_HOST} !^www'.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# Map the www URL to the subfolder in root directory
RewriteCond %{HTTP_HOST} www'.myurl'.com$
RewriteCond %{REQUEST_URI} !^/thefolder/
RewriteRule (.*) /thefolder/$1
对于Wordpress部分,我在wp-config.php
中放入了如下代码:
define('WP_HOME','http://www.myurl.com');
define('WP_SITEURL','http://www.myurl.com');
谢谢。干杯
更新我刚刚意识到,在上面的更改之后,我无法登录到我的WP管理页面。这是由于错误的重定向。它看起来有点像http://www.myurl.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.myurl.com%2Fthefolder%2Fwp-admin%2F&reauth=1
当我从URL中删除thefolder
时,它会重定向到期望的页面。有人能对此提出建议吗?