簡體   English   中英

我如何獲得我的htaccess以使我的網址看起來像foo.bar/user的此代碼段

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

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