Mod重写为复制的wordpress网站

时间:2015-03-19 15:52:54

标签: .htaccess mod-rewrite

我正在尝试将所有流量引导到主页,只引用一个名为go.php的php脚本,该脚本从URL中获取变量。

如果有人访问domain.com/username,go.php会获取用户名,查找他们的信息,将信息保存到会话中,然后重定向到index.php并显示主页(同一个域)的修改版本检索到的信息。一切都有效,除了mod重写部分。

我尝试了以下内容并且不确定我做错了什么:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^/$ go.php?id=$1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我的逻辑是,如果请求是index.php,则应该允许它,以防止循环。

如果请求到主页,它将转到go.php?id = username,该脚本将重定向到index.php并触发先前的mod重写规则以防止循环。

否则,如果目录或文件名不存在,它将定期重定向到index.php。

有关如何解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:0)

我认为这就是你的意思:

RewriteRule ^(.*)$ go.php?id=$1 [QSA]

说明:

我正在查看^/$重写规则中正则表达式中的go.php。我已经对此进行了测试,在这种情况下似乎是不可能的匹配。有人可能想要捕获root请求。但正斜杠不会传递给RewriteRule的这部分根目录。所以对root(仅)的调用是^$。并且还没有捕获括号来提供您附加到$1的{​​{1}}。