2015-01-06 121 views
-1

我想为我的一个项目做一个友好的URL。目前我的网址是http://example.com/profile.php?user=someprofile,我想让它成为http://example.com/someprofile。我尝试了下面的htaccess,但我的CSS和图像文件没有加载。.htaccess为友好的URL

RewriteEngine on 

RewriteCond $1 !^(profile\.php|assets|editor|css|js|scripts|images|img|media|xml|user_guide|robots\.txt|favicon\.ico) 
RewriteRule ^g/([^/\.]+)/?$ profile.php?user=$1 [L] 
<Files profile> 
    ForceType application/x-httpd-php 
</Files> 

我该如何做到这一点?

+0

为什么你的模式中有'^ g /'? – anubhava

+0

您的文件指令无关紧要。你没有处理文件,你正在处理虚拟网址。 –

+0

可能与http://stackoverflow.com/questions/27744603/css-js-and-images-do-not-display-with-pretty-url – Sumurai8

回答

0

这听起来像是相对/绝对URL的问题。由于您在网址的开头添加了/g/,因此更改了相对URI基础,因此所有相关链接都将被打破。您需要更改您的链接,绝对链接或添加相对URI基地到您的网页的标题:

<base href="/" /> 
0

有你的.htaccess就象这样:

RewriteEngine on 

# If the request is not for a valid directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# If the request is not for a valid file 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ profile.php?user=$1 [L,QSA] 

CSS/JS /图片路径问题: 最好在你的css,js,images文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径始于http://或斜杠/

否则你可以尝试在你的网页的HTML的<head>部分添加此:<base href="/" />让每一个相对URL是从URL解析,而不是当前页面的URL。