我正在尝试重定向域名上的旧 asp 页面,以便它们链接到 CakePHP 版本上的各自页面(使用 1.3)。域名是一样的。正在添加这些重定向,因此搜索引擎中的结果会转到新的 Cake 页面。
我的 /.htaccess 文件中有一堆 Redirect 301(默认为 app/.htaccess 和 app/webroot/.htaccess)。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
Redirect 301 /contacts.asp http://domain/contacts
Redirect 301 /users.asp http://domain/users
</IfModule>
但是由于某种原因,当我转到任何 url 来测试重定向时,它会附加一个额外的查询字符串参数。例如:
前往:http://domain/contacts.asp
结果http://domain/contacts?url=contacts.asp
所以重定向正在工作,但它正在附加url
查询字符串参数。我不想完全删除所有查询字符串参数,因为一些旧的 asp 链接具有查询字符串参数,我也希望将这些参数传递给相应的 Cake 页面。
我相信“url”查询字符串参数来自app/webroot/.htaccess
文件,如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
请注意,当我将所有 301 重定向放入我的虚拟主机文件时,不会附加该url
参数。我想将所有这些重定向保留在我的 .htaccess 文件中。如何防止附加此查询字符串参数?url