2012-12-18 172 views
0

我试图做一个查询字符串重写查询字符串的.htaccess

http://www.example.com/library.php?q=abscessed-tooth 

的一个非常简单的重写

http://www.example.com/library/abscessed-tooth 

这是我写在我的代码。 htaccess文件,它是无所事事

RewriteEngine On 
RewriteRule ^/library/?([^/]*)/?\/http://www.example.com/library.php?q=$1 [L] 
+0

什么是重写后产生的网址是什么?还是根本不重写?请更确切地说明你的问题到底是什么。 – thomaux

+0

因此不能重写所有..这是我已经写在我的htaccess文件 RewriteEngine叙述在 重写规则^库/([^ /] *)http://173.192.186.220/~newmedia/dev/ allsmile/library.php?q = $ 1 [L] –

回答

0

你需要美元符号“左”部分的结束不是问号:

^/library/([^/]*)/$ http://www.example.com/library.php?q=$1 [L] 

您还需要/和(?)之间的问号吗?它看起来不像前视或后视?

尝试不包装斜线以及

^library/([^/]*)$ http://www.example.com/library.php?q=$1 [L] 
+0

Acutally我在我们的演示服务器上试用它,并没有在那里工作。我想可能是域可能是一个问题。 http://173.192.186.220/~newmedia/dev/allsmile/library.php?q=abscessed-tooth –

+0

你必须斜杠添加到您的内部文件,CSS,JS和图像,例如: /sbtemplates /1072/css/layout.css – Moseleyi

+0

我必须在文件之前提供绝对路径名吗? –

1

也许可能.htaccess文件不是在您的环境考虑。如果有疑问,请按照重写模块出色文档中的说明打开RewriteLogging。

哦,并检查错误日志,你有一个语法错误在重写规则反正:RewriteRule需要两个参数加上标志,你的规则只有一个参数:

RewriteEngine On 
RewriteRule ^library/([^/]*) http://www.example.com/library.php?q=$1 [L]