2014-12-03 82 views
1

我在.htaccess中有一些行,我试图拼合URL,但似乎我错过了一些东西。 URL被重定向,但大部分资源在URL被重定向时都是“未找到”。.htaccess使用三个查询字符串重定向url

这是代码。

Options -Indexes +FollowSymLinks 
RewriteEngine On 
###########music####### 
RewriteCond %{THE_REQUEST} \ /+profile\.php\?user=([^&]+)&title=([^&]+)&uid=([^&\ ]+) 
RewriteRule^/%1/%2/%3? [L,R=301] 
RewriteCond %{THE_REQUEST} \ /+profile\.php\?user=([^&]+)&title=([^&\ ]+) 
RewriteRule^/%1/%2? [L,R=301] 
#################internally redirect//////////// 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ profile.php?user=$1&title=$2&uid=$3 [L,QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)$ profile.php?user=$1&title=$2 [L,QSA] 

我在做什么错?

+1

所有行都有注释。哪些网址不适合你? – anubhava 2014-12-03 06:24:41

+0

看到这个问题,以启用重写跟踪,这可能会帮助你找到什么是错的:http://stackoverflow.com/questions/7738170/how-to-debug-htaccess-rewrite-script – Sheepy 2014-12-03 06:28:09

+0

@anubhava,我的错误。请再看一遍。 – Relm 2014-12-03 06:42:14

回答

1

看起来你已经遇到了人们在切换到漂亮的URL方案时最常见的问题。解决方案也很简单,只需在你的css,js,images文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径始于http://或斜杠/

您可以尝试在页面的HTML标头中添加以下内容:<base href="/" />,以便每个相对URL都从该URL解析而不是当前URL解析。

+0

你保存了一天。我添加了。这解决了它。 – Relm 2014-12-03 07:09:53

+0

我不知道我是否应该创建一个单独的问题,或者您可以在这里回答。如何保留“profile”目录,就像在url上一样。像:www.site.com/profile/username/engineer/48? – Relm 2014-12-03 07:41:12

+0

尝试最后一条规则:'RewriteRule^profile /([^ /] +)/([^ /] +)/([^ /] +)$ profile.php?user = $ 1&title = $ 2&uid = $ 3 [L ,QSA]' – anubhava 2014-12-03 08:55:17

相关问题