[英]Redirect URLs with Apache
如何使Apache自動重定向URL,例如:
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文件中:
RewriteRule上的RewriteEngine ^ $ webpage.php?name = home_page [L] RewriteRule(。*)/ $ webpage.php?name = $ 1 [L]
但是RewriteRule不會自動重定向訪問者,它只是讓他們使用短URL或長URL。 換句話說,我想強制使用短網址。
嘗試這個:
RewriteEngine On
RewriteRule ^webpage.php?name=(.*)$ /$1 [R=301,L]
RewriteRule ^$ webpage.php?name=home_page [L]
RewriteRule (.*)/$ webpage.php?name=$1 [L]
只是為了驗證。 您是否要讓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”(如果已使用),則應使用“標頭”功能將其重定向到短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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.