正在开发的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
答案 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]
参考: