我遇到.htaccess文件的问题(我不太懂的东西) - 因此,如果我能得到一个解释以及一个难以置信的答案!
无论如何,情况如下。
目标:我正在尝试删除我网站的www部分,以便它始终以XXX.com的形式加载。
我有一个根目录,其中.htaccess编码如下:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
这很适合它的目的。但是,在名为&#34; Info&#34;的目录中我安装了Wordpress,它自己的.htaccess目前看起来像:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /info/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /info/index.php [L]
</IfModule>
这不会删除www并且是标准的WordPress安装.htaccess文件。我的问题是,我该怎么做这个文件或根目录文件来修复规范问题!
非常感谢,
Alex
答案 0 :(得分:0)
首先在子文件夹中重写htaccess文件中的重写规则。这意味着/info/
文件夹中的htaccess文件完全取代了父目录中的任何规则。这就是为什么忽略根目录中的规则。
如果您使用的是apache 2.4,则可以使用InheritBefore选项:
RewriteOption InheritBefore
使得父目录中的任何规则都可以在当前目录中的任何规则之前应用。
如果你没有使用apache 2.4,那么你必须复制之前的规则:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /info/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /info/index.php [L]
</IfModule>
答案 1 :(得分:-1)
我自己解决了这个问题。在WP中,这很容易做到。
我登录了wp-login.php,然后进入常规设置,删除了&#34; www。&#34;来自两个列出的网址...工作了一个魅力!