使用mod_rewrite重写目录但保留查询字符串

时间:2011-08-09 09:55:57

标签: php wordpress .htaccess mod-rewrite

我想通过以下方式在我的.htaccess文件中使用mod_rewrite重写Word Press网址:

http://blog.com/content/themes/twentyeleven/style.css

http://blog.com/wp-content/themes/twentyeleven/style.css

http://blog.com/inc/css/admin-bar.css?ver=20110622

http://blog.com/wp-includes/css/admin-bar.css?ver=20110622

http://blog.com/admin/post.php?post=1&action=edit

http://blog.com/wp-admin/post.php?post=1&action=edit

我试图隐瞒这个网站使用Word Press的事实,所有链接都是使用PHP动态重写的。但是,我希望服务器将链接重写回正确的Word Press按钮,如上所述。

如果它有帮助,我已经将一个文件(在我的php.ini文件中)添加到Wordpress index.php文件中,该文件调用ob_start();函数然后附加以下文件:

<?php
$html = ob_get_contents();
ob_end_clean();
$html = str_replace("wp-content", "content", $html);
$html = str_replace("wp-admin", "admin", $html);
$html = str_replace("wp-includes", "inc", $html);
echo $html; 
?>

有些人可能会质疑我为什么要隐瞒我们使用Word Press的事实。有很多原因(安全性就是其中之一),但这并不是这个问题的重点。

我可以在我的.htaccess文件中添加哪些代码,让我重写网址,但保留正确的查询字符串,例如?ver = 20110622或?post = 1&amp; action = edit

1 个答案:

答案 0 :(得分:3)

[QSA]标志将在重写URL时维护查询字符串。例如:

RewriteRule ^content/(.*?) wp-content/$1 [QSA]