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