Mod rewrite 使用.htaccess重写查询字符串

Mod rewrite 使用.htaccess重写查询字符串,mod-rewrite,Mod Rewrite,我正在尝试对查询字符串进行非常简单的重写 http://www.example.com/library.php?q=abscessed-tooth 到 这是我在.htaccess文件中编写的代码,它什么也不做 RewriteEngine On RewriteRule ^/library/?([^/]*)/?\/http://www.example.com/library.php?q=$1 [L] “左”部分末尾需要美元符号,而不是问号: ^/library/([^/]*)/$ http://

我正在尝试对查询字符串进行非常简单的重写

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

这是我在.htaccess文件中编写的代码,它什么也不做

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

“左”部分末尾需要美元符号,而不是问号:

^/library/([^/]*)/$ http://www.example.com/library.php?q=$1 [L]
您是否需要在/和之间打问号(?它看起来不像是向前看或向后看

尝试不包装斜线以及

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

可能您的环境中不考虑.htaccess文件。如果有疑问,请打开重写日志记录,正如重写模块的优秀文档中所解释的那样

哦,检查错误日志,您的重写规则中仍然存在语法错误:
RewriteRule
接受两个参数加上标志,您的规则只有一个参数:

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

实际上,我正在我们的演示服务器上试用,但它在那里不起作用。我想可能是域可能是一个问题。你必须在内部文件、css、js和图像中添加斜杠,例如:/sbtemplates/1072/css/layout.csd。我必须在文件之前给出绝对路径名吗?是的,如果你是“第一个”,这不会有什么影响当然,你可以通过在htaccess中使用一些魔法来避免它,但这是你的首选我做了,但它仍然没有发生。这是我在我的htaccess文件重写引擎中的RewriteRule^library/([^/]*)[L]重写后得到的url是什么?或者根本没有重写?请更具体地说明问题所在。根本没有重写。这是我在重写规则^library/([^/]*)[L]上的htaccess文件重写引擎中编写的内容
RewriteEngine On
RewriteRule ^library/([^/]*) http://www.example.com/library.php?q=$1 [L]