.htaccess映射www&非www到文件夹和维护www

时间:2015-11-25 03:56:18

标签: php wordpress apache .htaccess mod-rewrite

我不是.htaccess专家,极少使用它。我在Net和SO上经历了几个解决方案,但仍然没有运气。所以我有一个IP说1.2.3.4,我的wordpress应用程序的子文件夹在/var/www/html/中说ABC。已设置DNS,以便www.mydomain.commydomain.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时,浏览器会自动将网址更改为mydomain.com

除此之外,我还想拥有www的所有域名。来自mydomain.com的请求将显示为www.mydomain.com。稍后我会将www.mydomain.com放入我的wordpress的URL配置中。一些帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

切换回旧的.htaccess代码。在上次更新后我更清楚了。你有" public_html / ABC"中的wordpress文件。但需要您的网站网址为www.example.com。让我一步一步解释。

  1. 将旧代码粘贴到.htaccess。
  2. 将index.php和.htaccess文件从/ ABC文件夹复制(不要移动)到" public_html"你的网站。
  3. 在" public_html / index.php"中查找一条规则as" require(dirname( FILE )。' /wp-blog-header.php');"并将其替换为" require(dirname( FILE )。' /ABC/wp-blog-header.php');" (不要编辑文件夹/ ABC中的index.php文件!!)
  4. 仅更改"网站地址(URL)"在常规设置(设置 - >常规)到" http://www.example.com"。

答案 1 :(得分:0)

所以最后我设法得到了我想要使用下面的解决方案。希望这会帮助那里的人:

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

当我从网址中删除thefolder时,它会重定向到预期的网页。有人可以就此提出建议吗?