我一直在努力解决 wordpress 网站上的 htaccess 问题,过去我从 stackoverflow 获得了很多信息,我认为这是最好的提问地点。如果我没有正确发布,请提前道歉,这是我的第一次。
这是我的设置的细节(我无法显示或允许访问该站点,因为我已同意某种 NDA)
- 有2个站点。第一个是根站点“/”,第二个是“/mythoughts/”,如网络管理员中所示。
- “/mythoughts/”站点是旧的自定义博客的替代品,该博客在 url 中使用变量(自定义)
- 我使用的主题是二十个和根(显然根不做整洁的 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 事情(过去几周我一直在努力解决的问题)上为我指明正确的方向,我将非常感激。
提前感谢男孩和女孩。