1

我的Apache mod rewrite配置有点问题。

我需要一个这样的网址:

http://mysite.com/search+terms

我已经尝试过这个配置,htaccess但它不起作用:

RewriteRule ^(.*)$ /search.php?s=$1

它返回给我一个500 Internal Server Error.

我该如何解决?谢谢你。

4

3 回答 3

0

由于无限循环,您会收到 500 个内部错误,因为.*即使在重写之后,您的正则表达式也始终匹配。您需要使用 RewriteCond 停止此操作。用这个替换你的代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ search.php?s=$1 [L,QSA,NE]
于 2013-07-16T10:26:29.800 回答
0

试试这个 .htaccess 代码:

RewriteEngine on
RewriteRule ^search+(.*)$ /search.php?s=$1
于 2013-07-16T10:19:11.307 回答
0

试着把这条线,

RewriteEngine on
RewriteBase /

并将 RewriteBase 设置为search.php的正确位置

编辑

我可以将其归类为重复查询字符串的 htaccess 重写

编辑 2

删除前缀斜杠

RewriteRule ^(.*)$ /search.php?s=$1

成为

RewriteRule ^(.*)$ search.php?s=$1
于 2013-07-16T08:21:35.393 回答