我在客户的网站上遇到问题。我为他创建了一个新的Wordpress网站,现在我遇到了htaccess重定向问题。
在我在服务器上安装Wordpress之前,有两个静态基本HTML站点。一个在public_html根目录中使用主域和子文件夹中完全不同的子网站,并使用htaccess重写规则将子域指向该文件夹。
现在有Wordpress弄乱了重定向。 Wordpress当然会对原始的htaccess文件进行修改。除此之外,客户还必须更改托管服务提供商内的服务器以获得更新的php版本,因此我必须从头开始编写htaccess文件。
这是当前的htaccess文件:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /www/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www/index.php [L]
</IfModule>
# END WordPress
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?subdomainurl.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdomainfolder/
RewriteRule ^(.*)$ subdomainfolder/$1 [L]
Wordpress安装在名为www的文件夹中,并且正在重写url,它工作得很漂亮。但是我遇到了子域问题。在上面的代码中,我用subdomainurl.com替换了子域名url,该站点位于public_html / subdomainfolder /。
现在,当我输入www.subdomainurl.com时,重定向工作,显示该网站。但www.subdomainurl.index.html键入的不是。它必须写成www.subdomainurl.com/subdomainfolder/index.html,所以我显然没有正确编写重定向,也添加了子域文件夹。我试图与那个htaccess混在一起,但无法做到正确。每当我尝试改变某些东西时,我会在主域的Wordpress网站上获得404.
目前这些工作: www.maindomain.com/subdomainfolder/index.html www.subdomainurl.com/subdomainfolder/index.html
而这不是,我正在努力做到: www.subdomainurl.com/index.html
我不是重定向专家,非常感谢任何帮助。
编辑/插件:
以下是来自旧服务器的旧代码,它将子域重定向到子文件夹并重写了url,它不再起作用,所以我放弃了它。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?subdomainurl.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdomainfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subdomainfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?subdomainurl.com$ [NC]
RewriteRule ^(/)?$ subdomainfolder/index.html [L]
答案 0 :(得分:0)
我没有在htaccess文件中看到只有子域和主域的条目。
答案 1 :(得分:0)
目前我正在使用此代码
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /www/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www/index.php [L]
</IfModule>
END WordPress
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?subdomainurl.com$ [NC]
RewriteCond %{REQUEST_URI} !subdomainfolder
RewriteRule ^(.*)$ subdomainfolder$1
这会将整个辅助域(subdomainurl.com)加载为www.subdomainurl.com/subdomainfolder,它的工作原理如下(www.subdomainurl.com/subdomainfolder/index.html,www.subdomainurl.com/subdomainfolder/work。 html等),但它仍然不是客户真正想要的。我仍然需要通过htaccess从url中删除subdomainfolder-part,到目前为止我还没有成功。我想我在代码的最后一行没有把它弄好。