簡體   English   中英

使用Apache重定向URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM