【发布时间】:2012-09-29 20:56:59
【问题描述】:
我一直在努力解决 wordpress 网站上的 htaccess 问题,过去我从 stackoverflow 获得了很多信息,我认为这是最好的提问地点。如果我没有正确发布,请提前道歉,这是我的第一次。
这是我的设置细节(我无法显示或允许访问该网站,因为我已同意某种 NDA)
- 有 2 个站点。第一个是根站点“/”,第二个是“/mythoughts/”,如网络管理员中所示。
- “/mythoughts/”网站替代了某人构建的旧自定义博客,该博客使用 url 中的变量(自定义)
- 我使用的主题是 20 和 root(显然 root 不会像在网络设置上那样进行整洁的 url 重写)
问题是这样的。
首先“index.php 正在从 url 中删除(这不是问题,但我认为当我尝试进行其他重写时可能会导致问题。)
其次,旧网站在 2 个实例中的 url 中有变量。
第一个例子是这个
www.thesite.com/mythoughts/index.php?year=2010&month=9
我需要重写为
www.thesite.com/mythoughts/2010/9
首先index.php被自动删除
我尝试了很多不同的东西,比如
RewriteRule ^mythoughts/index.php?year=(.*)&month=(.*)$ mythoughts/$1/$2 [R=301,L]
没用
第二个例子是这个
www.thesite.com/mythoughts/index.php?thought=101
应该改写成
www.thesite.com/mythoughts/title-of-the-post
我有一个脚本可以将 url 变量与帖子的标题匹配(并替换删除非法字符),但重写不起作用。
这是我目前拥有的 htaccess(一个简单的 wordpress)
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [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).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>
#END WordPress
如果有人能帮助我在整个 htaccess 事情(过去几周我一直在努力解决的问题)上为我指明正确的方向,我将非常感激。
在此先感谢大家。
【问题讨论】:
标签: wordpress .htaccess redirect