WordPress下的htaccess RewriteRule

时间:2018-05-21 00:37:53

标签: wordpress .htaccess

正在开发的WordPress网站。我们的目标是看看永久链接(但不是),通过URL parms将相关位传递给静态页面。

静态页面的直接测试有效(原谅未完成的输出):

  

http://test.cynical.ws/display-murphy/?cynical_id=_Computing' s_7th_law

此页面的常用网址应为:

  

http://test.cynical.ws/murphyism/_Computing' s_7th_law

我有RewriteRule,但失败的是:

RewriteRule ^murphyism/(.*)$ display-murphy/?cynical_id=$1

由于直接访问静态页面不会产生错误,我怀疑它是单引号的标记(我们查找内容的数据库有很多带单引号的kets)。 / p>

我尝试了各种RewriteRule标志(例如[L])而没有改变行为。

这是整个htaccess文件:

RewriteEngine on

RewriteRule ^murphyism/(.*)$ display-murphy/?cynical_id=$1

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

# END WordPress

1 个答案:

答案 0 :(得分:0)

关于RewriteRule,如上所述,使用:

RewriteRule ^murphyism/(.*)$ display-murphy/?cynical_id=$1 [NE,R,L] 

这里的重要部分是NE|noescape,因为目标网址包含一个片段。您需要使用NE标志来避免URL转义问题

关于没有重定向的重写,这需要在Apache的httpd.conf中启用mod_proxy和mod_rewrite。

然后,重写应如下所示:

Options +FollowSymLinks -MultiViews 
RewriteEngine On
RewriteRule ^murphyism/(.*)$ display-murphy/?cynical_id=$1 [NC,NE,L]

参考: