.htaccess用于友好的URL

时间:2015-01-06 19:23:12

标签: php regex apache .htaccess friendly-url

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

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>

我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

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

<base href="/" />

答案 1 :(得分: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 / images路径问题: 最好在css,js,images文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径以http://或斜杠/开头。

您可以尝试在页面的HTML <head>的{​​{1}}部分添加此内容,以便从该网址解析每个相对网址,而不是当前网页的网址