Apache 使用GET请求重写mod_
我的大部分网站都在进行修改。现在我有一个搜索,通常会指向Apache 使用GET请求重写mod_,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我的大部分网站都在进行修改。现在我有一个搜索,通常会指向 search.php?keyword=KEYWORD 我想把它改写成 search/?keyword=KEYWORD 只是为了让它干净一点。这是我的修改。(我只是发布了一条不起作用的其他规则。) 当我在地址栏中按我所希望的方式键入搜索时,我会看到一个页面,告诉我这是一个“断开的链接”(我猜这相当于Chrome的404错误)。那么我做错了什么?我认为问题在于规则(第一部分)中的“=”或“?”符号,因为当我去掉?关键字=部分时,它会起作用
search.php?keyword=KEYWORD
我想把它改写成
search/?keyword=KEYWORD
只是为了让它干净一点。这是我的修改。(我只是发布了一条不起作用的其他规则。)
当我在地址栏中按我所希望的方式键入搜索时,我会看到一个页面,告诉我这是一个“断开的链接”(我猜这相当于Chrome的404错误)。那么我做错了什么?我认为问题在于规则(第一部分)中的“=”或“?”符号,因为当我去掉?关键字=部分时,它会起作用。这有意义吗
编辑:这是我的完整.htaccess代码:
RewriteEngine on
RewriteRule ^$ index.php
RewriteRule ^thoughts$ archives.php
RewriteRule ^thoughts/$ archives.php
RewriteRule ^about$ about.php
RewriteRule ^about/$ about.php
RewriteRule ^search/\?keyword=([^/]+)$ search.php?search=$1
RewriteRule ^tags/([^/]+)$ tags.php?tag=$1
RewriteRule ^thoughts/([^/]+)$ post.php?title=$1 [L]
仍在获取错误页
RewriteRule ^search/\?keyword=([^/.]+)/?$ search.php?search=$1
问号字符在正则表达式中具有特殊意义。你需要逃避它
此外,点在字符类中没有特殊意义;您不需要转义它(您要求关键字不包含斜杠和圆点)
问号字符在正则表达式中具有特殊意义。你需要逃避它
此外,点在字符类中没有特殊意义;您不需要转义它(您要求关键字不包含斜杠和圆点) 如果您只想变换:
search.php?keyword=KEYWORD
进入:
您需要做的只是:
RewriteRule ^search/$ search.php [QSA]
QSA标志表示“查询字符串追加”,并通过GET将您的任何请求传递到search.php:
search/?keyword=KEYWORDD
search/?name=value&name2=value2
您可能还想签出,这会将每个/foo请求发送到它在/目录中找到的任何foo.*文件,尽管它们是。如果您只想转换:
search.php?keyword=KEYWORD
进入:
您需要做的只是:
RewriteRule ^search/$ search.php [QSA]
QSA标志表示“查询字符串追加”,并通过GET将您的任何请求传递到search.php:
search/?keyword=KEYWORDD
search/?name=value&name2=value2
您可能还想签出,它会将每个/foo请求发送到它在/目录中找到的任何foo.*文件,尽管它们是。在正斜杠之前是否需要反斜杠?正斜杠对某些正则表达式库有意义。没有,尝试过,没有改变任何东西。另外,我所有其他的斜杠重写都很好。不过,谢谢!在正斜杠之前需要反斜杠吗?正斜杠对某些正则表达式库有意义。没有,尝试过,没有改变任何东西。另外,我所有其他的斜杠重写都很好。不过,谢谢!谢谢,我想会有类似的事情,但我还是有问题。我仍在获取saem错误页面。我正在发布整个.htaccess代码,可能是因为我做了其他错误。@iMaster您确定要在查询字符串的末尾添加
/?
?我甚至不确定/
和?
是否可以在查询字符串中。我的modified.htaccess已发布在上面。我仍然没有得到任何结果。谢谢,我想有类似的事情,但我仍然有问题。我仍在获取saem错误页面。我正在发布整个.htaccess代码,可能是因为我做了其他错误。@iMaster您确定要在查询字符串的末尾添加/?
?我甚至不确定/
和?
是否可以在查询字符串中。我的modified.htaccess已发布在上面。我仍然没有得到任何结果。我希望人们停止链接到那篇文章。这是一个关于如何在apache中配置PHP的误解(提示:它不是Addtype应用程序/x-httpd-PHP.PHP
),我希望人们停止链接到那篇文章。在apache中如何配置PHP是一个误解(提示:它不是Addtype应用程序/x-httpd-PHP.PHP
)