如何让Apache自动重定向网址,例如:
mydomain.com/webpage.php?name=about_me mydomain.com/webpage.php?name=contact 等
为:
mydomain.com/about_me mydomain.com/contact
另外,mydomain.com/webpage.php?name = home_page应重定向到:mydomain.com /
现在,我有.htaccess文件:
RewriteEngine On RewriteRule ^ $ webpage.php?name = home_page [L] RewriteRule(。*)/ $ webpage.php?name = $ 1 [L]
但RewriteRule不会自动重定向访问者,只是让他们使用短URL或长URL。换句话说,我想强制使用短网址。
答案 0 :(得分:0)
试试这个:
RewriteEngine On
RewriteRule ^webpage.php?name=(.*)$ /$1 [R=301,L]
RewriteRule ^$ webpage.php?name=home_page [L]
RewriteRule (.*)/$ webpage.php?name=$1 [L]
答案 1 :(得分:0)
只是为了验证。你想让apache像这样工作:
访客访问“mydomain.com/about_me”,并显示“mydomain.com/webpage.php?name=about_me”。 访客访问“mydomain.com/contact”,并显示“mydomain.com/webpage.php?name=contact”。
如果你想拥有这个。你应该试试这个:
RewriteEngine On
RewriteRule ^(.*)$ webpage.php?name=$1 [L]
如果您希望“mydomain.com/webpage.php?name=about_me”自动重定向到“mydomain.com/about_me”。您应该在webpage.php文件中添加额外的检查。检查应评估URI以查看是否使用“webpage.php”,如果使用,则应使用“header”函数重定向到短URL。所以这是代码:
$page="webpage.php";
if(substr($_SERVER["REQUEST_URI"],0,strlen($page)) == $page) {
$location = "Location: http://".$_SERVER["SERVER_NAME"]."/".$_GET["name"];
header($location);
}
// whatever webpage.php does.