[英]how can i get my htaccess to make my url look like foo.bar/user with this snippet i have
我一直在嘗試使自己的網址更加用戶友好,並且我提出了這一設置
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ userpage?user=$1 [NC,L]
我將其添加到我的.htaccess
但是現在我對如何訪問這些URL感到困惑。
在我的index.php
當用戶登錄時,我嘗試使用
userpage.php?user=s2xi
但網址解析為www.foo.bar/userpage.php?user=s2xi
而不是www.foo.bar/s2xi
並嘗試以此作為檢查用戶是否存在的方法(有更好的方法嗎?)
if($_GET['user'] != $_SESSION['username']){
header("Location: no_user.php");
}else{
//load page
}
我在網站上使用Smarty模板引擎,並且在屬於成員文件的目錄中有“主題”
www.foo.bar/users/s2xi/themes
但我希望www.foo.bar/s2xi指向其他任何人都可以查看的人員個人資料頁面,而不是他們的帳戶頁面。
你錯過了.php
在你RewriteRule
,如果這是逐字-例如, userpage?
=> userpage.php?
。
但是,除非使用框架來幫助您區分路線,否則您將遇到一些問題。 如果您切換到使用單獨的URI格式的用戶頁面(如/user/foo
),你不會有沖突; 但按照目前的情況,使用.htaccess重寫該格式的URL可能會導致應用程序其他許多部分出現問題。
要使用一個單獨的URI格式,這樣做,改變你的最后的.htaccess行( RewriteRule
)來:
RewriteRule ^user/(.+)/?$ userpage.php?user=$1 [NC,L]
可能還需要考慮添加QSA
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.