【问题标题】:htaccess not working OKhtaccess 不能正常工作
【发布时间】:2013-09-10 10:38:13
【问题描述】:

我的 .htaccess 中有以下代码,该代码位于我的 wordpress 博客中,位于子域下。现在我将我的博客移到子文件夹下,并从子域放置了 301 重定向,但是当我访问 blog.domain.com 上的页面时,我得到 500 内部服务器错误,而不是得到 301 重定向到 http://domain.com/blog/

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php


RewriteCond %{HTTP_HOST} ^blog\.stream-tek\.com
RewriteRule ^(.*)$ http://www.stream-tek.com/blog/$1 [R=301]


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

# END WordPress

现在当我删除以下代码时:

# BEGIN WordPress
# END WordPress

我从子域页面获得 301 重定向,但是当我返回它时它不起作用。我需要那部分代码,因为没有它,wordpress clean urls 将无法工作。

上面的 htaccess 文件有什么问题,因为我不是这方面的专家。

感谢您的帮助。

【问题讨论】:

  • 当您实际更改安装时,您可能需要更改 wordpress 中的设置,例如站点 url..
  • 是的,wordpress 工作正常,我按照我的设想做了这些更改。我只有那个 .htaccess 文件和重定向有问题

标签: wordpress .htaccess


【解决方案1】:

问题是 WP 的东西甚至在你的重定向有机会启动之前就完全控制了。

改变规则的顺序。

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
RewriteEngine On
RewriteBase /blog/
<IfModule mod_rewrite.c>

RewriteCond %{HTTP_HOST} ^blog\.stream-tek\.com$ [NC]
RewriteRule ^ http://www.stream-tek.com/blog%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]

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

</IfModule>
# END WordPress

【讨论】:

  • 您能否发布最新的 .htaccess 文件,包括此更改?我怀疑301规则不对。
  • 好的,我已经用当前的 htaccess 代码更新了我的原始问题。请检查一下。谢谢。
  • 好吧,我拿了你发布的代码并在我的答案中进行了编辑,现在试试吧。由于此处使用的是R=301,因此也请使用其他浏览器对其进行测试或清除浏览器缓存。
  • 惊人的!工作没有问题。
猜你喜欢
  • 2017-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
相关资源
最近更新 更多