我希望能够拿到网址
www.mydomain.com/profile.php?user=THEUSERNAME
并将其转换为
www.mydomain.com/THEUSERNAME
几乎像推特。
我也希望能够把它带到我可以去的地方
www.mydomain.com/THEUSERNAME
它将转到用户的页面,而不会将URL更改回长URL。我不知道这是怎么做的,我也不知道它是否需要.htaccess,PHP或两者兼而有之。 请帮忙。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ profile.php?user=$1 [L]
此外,您还需要为所有CSS和JS文件提供绝对 URL。例如,不必使用src =“css / main.css”,而是必须输入src =“http://yourdomain.com/css/main.css”。原因是因为如果您的网址有反斜杠(即 yourdomain.com/USERNAME / ),那么它会认为它位于下一个目录中并且会导致冲突。 Absolute解决了CSS和JS问题。
不是这样:
<link href="css/allpage.css" rel="stylesheet" type="text/css" />
此:
<link href="http://yourdomain.com/css/allpage.css" rel="stylesheet" type="text/css" />
答案 0 :(得分:2)
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /profile.php?name=$1 [L]
这样可行,http://yoursite.com/username(带或不带斜线)将重写为http://yoursite.com/profile.php?user=username
此外,您必须使用/基于文件(适用于<script>
和<link>
)或完整网址,否则您可能会收到404错误。我还建议你添加一个CDN,你可以推送链接víaCDN,一个非常好的是maxCDN - 40USD第一个TERABYTE!。
答案 1 :(得分:1)
试试这个
RewriteEngine on
# we're working the document root
RewriteBase /
# make sure requested item is not a file
RewriteCond %{REQUEST_FILENAME} !-f
# re-route everything that may be a username slug to the profile
RewriteRule ^([^/]+)/?$ /profile.php?name=$1 [L]