我有一个php生成的文件,如: http://www.domain.com/?mod=test&act=view
我想创建一个从该地址重定向到以下内容: http://www.domain.com/view-test
这样每当用户(或机器人)访问第一个uri时,它就会被重定向到http://www.domain.com/view-test查看第一个uri的内容。
现在我的.htaccess下面有以下规则:
RewriteRule ^view-test$ /?mod=test&act=view [NC]
RewriteCond %{QUERY_STRING} mod=test&act=view
RewriteRule ^(.*)$ /view-test? [R,L]
第一个规则会创建一个“页面别名”,如果我删除其他两行(但不会按我的意愿重定向我的用户),则会有效。
在放置最后两条规则之后,我最终会在循环或其他内容中收到一条broswer消息,说“该页面未正确重定向”...
如果我删除第一条规则,则会收到404错误,说明找不到/ view-test
知道我做错了什么吗?
答案 0 :(得分:1)
我认为正则表达式更好。如果你的php处理程序是.htaccess
index.php
文件
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} mod=(\w+)&act=(\w+)
RewriteRule ^$ /%2-%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\w+)-(\w+)$ /index.php?mod=$2&act=$1 [L]
答案 1 :(得分:0)
忘记.htaccess它在php中更容易,我在我的网站中使用它,我创建了一个index.php文件来将用户从example.com重定向到example.com/123
在我的index.php中我把这个
<?php
header('Location: http://example.com/123');
?
>