Mod_rewrite,htaccess和Wordpress slugs

时间:2013-05-21 17:30:51

标签: wordpress .htaccess mod-rewrite

这简单或不可能;经过大量的谷歌搜索和线程阅读后,我无法分辨。

我有一个WordPress网站,它使用插件来创建自定义帖子类型。这就是自定义帖子类型有一个非常丑陋的“slu”“。这意味着URL看起来像这样:

http://mysite.org/uglyname/a-post-title/

“uglyname”是一个丑陋的名字。我不能在不编辑插件的核心文件的情况下更改名称,这在这种情况下是个坏主意。

我想要做的是,如果用户访问这样的网址:

http://mysite.org/prettyname/a-post-title/

Wordpress将prettyname解释为丑陋的名字,并且或多或少都是非物质的。

我不想要只重定向的东西;我希望它是一个无声的映射。但请记住,Wordpress已经在使用.htaccess文件将所有内容映射到http://mysite.org/index.php

这可能,或者我只是在咆哮错误的树?

编辑添加:当前.htaccess是WordPress默认值:

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

# END WordPress

1 个答案:

答案 0 :(得分:0)

RewriteCond %{REQUEST_FILENAME} !-f之上,尝试以下行:

RewriteRule ^prettyname/(.+)/? /uglyname/$1

如果我没有弄错的话,它应该将其传递掉,然后仍然处理index.php路由。

没有测试过 - 现在不在服务器上。