簡體   English   中英

使用.htaccess重寫重定向URL的規則

[英]Rewrite rules for redirect URLs using .htaccess

我正在使用.htaccess重定向我網站上的URL,以避免出現諸如page1.php之類的鏈接。

我打算在根域上使用子文件夾engine/index.php來處理重定向的URL。

例如,我希望鏈接localhost/user重寫為localhost/engine/index.php?view=user注意:正在使用的鏈接,即/ user不是域中存在的文件或文件夾

用這個:

RewriteEngine On

RewriteRule ^([a-z]+)$ engine/index.php?view=$1 [NC,L,QSA]

將其直接放在www/目錄中的.htaccess文件中。
([az]+)將匹配一組字母(由於使用了NC標志,所以也要使用大寫字母),但是如果在localhost/沒有字母,則該URL將不會被重寫。 如果localhost后面只有字母,則該URL將被重寫為engine/index.php?view=$1

L標志指示這是最后一個RewriteRule ,而QSA標志將舊的查詢字符串附加到新的查詢字符串。 例如: localhost/user?var=val將重定向到localhost/engine/index.php?view=user&var=val

但是 ,如果用戶轉到localhost/user?view=somethingelse ,它將被重寫為localhost/engine/index.php?view=user&view=somethingelse ,這意味着如果您在engine.php執行$_GET['view']它將返回“ somethingelse” 要從querystring( user )獲取第一個view參數,請在PHP中使用此正則表達式:

$view = preg_replace('/view=([^&]+).*/', '$1', $_SERVER['QUERY_STRING']); //now, $view contains 'user'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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