【问题标题】:Wordpress .htaccess rewrite rule not workingWordpress .htaccess 重写规则不起作用
【发布时间】:2011-05-17 04:26:56
【问题描述】:

我的 wordpress 在我的域的一个子文件夹中,根目录上有一个 .htacess 文件,它执行所有重定向。

我想做一个重定向,将站点 IP 重定向到 WWW。它适用于根目录上的主站点,但不适用于 Wordpress 的子文件夹。

iv 感觉 wordpress 在哪里覆盖了这个?

这是 iv 在 root .htaccess 中使用的内容

RewriteCond %{HTTP_HOST} ^IP.IP.IP.IP [NC] 
RewriteRule ^(.*)$ http://www.NAME.com/$1 [R=301,L] 

但这不适用于 wordpress 子文件夹 iv 甚至尝试将其复制到 WP 根文件夹中的 .htaccess 文件中,但仍然无法正常工作

【问题讨论】:

  • 您提到您尝试将 .htaccess 复制到子文件夹?你得到了什么错误?移动 .htaccess 文件后,您是否尝试使用域名而不是 IP 访问您的博客?有用吗?
  • 是的,我确实尝试将根 .htaceess 移动到 WP 所在的子文件夹,但没有任何改变 WP 仍然有效,但重定向没有。
  • 我确定重定向不起作用,否则您为什么要寻求帮助。 :) 无论如何,当浏览器不起作用时,我想知道浏览器中的 url 是什么。检查更新的答案,它应该可以工作。

标签: wordpress .htaccess redirect


【解决方案1】:

这是因为在您的 Wordpress wp-admin 面板中有一个设置:

Settings -> General -> WordPress address (URL)

Settings -> General -> Blog address (URL)

确保将它们更新为http://www.domain.com/subfolder,然后它将开始工作。

更新(基于您的 cmets)

在 WP 安装文件夹 '/blog' 中使用以下 .htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /blog/

RewriteRule ^/?$ /blog/index.php [L]

RewriteCond %{HTTP_HOST} ^IP\.IP\.IP\.IP$
RewriteRule . http://www.NAME.com%{REQUEST_URI} [R=301,L]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress

【讨论】:

  • HI @Anubhava WP 工作正常,您上面提到的一般设置 URL 是正确的。问题是,您可以使用 http://ip.ip.ip./blog/ 访问博客,我不希望它重定向到 w.name.com/blog/
  • 是的,我知道您的 wordpress 正在工作,但请理解这是导致您出现这种行为的原因:) 无论您在我的回答中提到的这 2 个属性中定义什么,wordpress 都会将其视为 基本 wordpress URL。每次运行 wordpress blog/index.php 时,它都会使用该属性。因此,无论您在 .htaccess 之前拥有什么,它都会重定向到 Settings -&gt; General -&gt; WordPress address (URL) 中定义的 URL
  • 我还是不明白你的意思!!您在顶部提到的内容我有完整的网址(域名不是 IP 地址),但就像我说的,我仍然可以使用 IP/blog/ 访问该站点,但是如果我使用 IP 访问主站点,那么它会重定向到 w.name .com。那么我怎样才能让 WP 始终在 w.name.com/blog 上而不是别的??
  • 我的意思是,如果您在这两个设置中设置了http://w.name.com/blogSettings -&gt; General -&gt; WordPress address (URL)Settings -&gt; General -&gt; Blog address (URL),那么即使您输入@,Wordpress 也会自动将您的 URL 开头为 http://w.name.com/blog 987654331@
  • 好的,但不是!我仍然可以通过 'http://IP-address/blog' 访问 WP
【解决方案2】:

.htsccess 文件覆盖父目录中的 .htaccess 文件。 在您的情况下,WordPress 博客目录有一个 .htaccess 文件覆盖根目录中的 .htaccess 文件。这就是为什么您看到它适用于根目录,但不适用于子文件夹,例如 /blog。

您不应该替换 WordPress 创建的 .htaccess。 Add 子目录中现有 .htacess 文件中的重写规则,并确保这是文件中的第一条规则(即在 &lt;if ...&gt; 块内)。如果您使用 WP Super Cache 或类似插件,请确保在插件创建的规则之上创建一个新的 if 块,并保持 WordPress 创建的 &lt;if ...&gt; 块完好无损。

&lt;edit&gt;

在您的根文件夹中,

RewriteCond %{HTTP_HOST} ^IP\.IP\.IP\.IP [NC]  
RewriteRule ^(.*)$ http://www.NAME.com/$1 [R=301,L]  

在您的 WP 目录 (WPDIR) .htaccess 文件中,在任何其他规则之前,

RewriteCond %{HTTP_HOST} ^IP\.IP\.IP\.IP [NC]  
RewriteRule ^(.*)$ http://www.NAME.com/WPDIR/$1 [R=301,L]  

当然,将它放在&lt;if ...&gt; 块中并打开RewriteEngine。

【讨论】:

  • 已经这样做了,但没有成功!仍然保持 IP url 不重定向到 www。
  • 您能否将博客文件夹中的整个 .htaccess 文件放入您的问题中以供检查?
猜你喜欢
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多