2014-02-15 30 views
1

我想這樣的URL轉換:如何在php中創建個性化的網址?

http://somesocial.com/SomeSocial/success/profile?search_user=exampleuser01

成個性化的網址是這樣的:http://somesocial.com/exampleuser01

我試着內success/preview/user_preview.php 一個文件,該文件的副本來創建文件夾profile.php從'search_user'中獲取參數$profile_id = $_GET['profile_id']header('Location:'.'success/profile?'.$profile_id);重定向搜索的用戶以查找其原始鏈接。

修改我的.htaccess到:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !^success/preview/user_preview?search_user= 
RewriteRule ^/?([^/]+)$ success/preview/user_preview?search_user=$1 [L] 

這工作完全,但每一次我嘗試訪問從主目錄(即的index.php)的文件重定向我http://somesocial.com/SomeSocial/success/profile.php?search_user=Index.php

爲什麼?

+0

這裏是你應該如何看待這一點:任何事情,這不是一個目錄中/系統文件,幷包含一個GET參數應及時治療,並重新寫入:'/ SomeSocial/success/profile?search_user = requestName'。 – Shomz

回答

0

嘗試重新安排你的規則機智更嚴格的條件:

RewriteEngine on 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

RewriteRule ^([^/]+)/?$ success/preview/user_preview?search_user=$1 [L,QSA] 
+0

沒有工作:'( –

+0

它沒有工作的URL? – anubhava

+0

http://somesocial.com/index.php/ http://somesocial.com/exampleuser01它返回相同的頁面lol –