单个子域上设置的Wordpess的HtAccess

时间:2017-02-03 作者:user3799089

Situation

  • 我在OVH中有标准主机(不是VPS),我可以在它的不同子目录中设置许多网站,
  • 我想安装2个Wordpress实例-首先在目录中/A 和目录中的secend/Bdomain.com 和“B”使用subdomain.domain.com

Question

<在这种情况下,我需要使用标准.htaccess Wordpress在每个Wordpress目录的单个域上的配置,或者我必须在每个Wordpress目录的子域上使用特殊配置

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
子域

RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\\.php)$ $1 [L]
RewriteRule . index.php [L]
或者我应该使用的子目录版本.httaccess ?子文件夹

RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
RewriteRule . index.php [L]

1 个回复
最合适的回答,由SO网友:Fayaz 整理而成

我的建议是:使用相同的标准.htaccess Wordpress在每个Wordpress目录中的单个域上的配置。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
同时,添加一个小代码以确保用户重定向到正确的域,以防他们使用另一个域访问该子目录:

RewriteCond %{HTTP_HOST} !^domain\\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]
之后,您的.htaccess 对于domain.com 将类似于:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^domain\\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]

RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
对于subdomain.domain.com, 这就像:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^subdomain\\.domain\\.com$
RewriteRule ^(.*)$ "https://subdomain.domain.com/$1" [R=301,L]

RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
原因:建议使用标准代码,因为它更易于维护和;调试,因为到处都是一样的。

额外的两行建议主要用于SEO. 如果没有它们,您的一个域可以使用另一个域访问。这可能会引发一些重复内容的问题。

相关推荐

重定向htaccess在我的新WordPress站点上不能正常工作

我有一个很好的老网站(www.example.com). 我创建了一个新网站(www.example.com/wordpress) 我想我可以.htaccess 重定向,就像我过去对其他html网站所做的那样。我得到的结果是:www.example.com/worpress/wordpress/wordpress......... 直到它出错。有人能帮我吗?我在中使用了此命令.htaccess:Redirect permanent / http://www.example.com/wordpress/&#