我的Apache mod rewrite
配置有点问题。
我需要一个这样的网址:
http://mysite.com/search+terms
我已经尝试过这个配置,htaccess
但它不起作用:
RewriteRule ^(.*)$ /search.php?s=$1
它返回给我一个500 Internal Server Error
.
我该如何解决?谢谢你。
我的Apache mod rewrite
配置有点问题。
我需要一个这样的网址:
http://mysite.com/search+terms
我已经尝试过这个配置,htaccess
但它不起作用:
RewriteRule ^(.*)$ /search.php?s=$1
它返回给我一个500 Internal Server Error
.
我该如何解决?谢谢你。
由于无限循环,您会收到 500 个内部错误,因为.*
即使在重写之后,您的正则表达式也始终匹配。您需要使用 RewriteCond 停止此操作。用这个替换你的代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ search.php?s=$1 [L,QSA,NE]
试试这个 .htaccess 代码:
RewriteEngine on
RewriteRule ^search+(.*)$ /search.php?s=$1
试着把这条线,
RewriteEngine on
RewriteBase /
并将 RewriteBase 设置为search.php的正确位置
编辑
我可以将其归类为重复查询字符串的 htaccess 重写
编辑 2
删除前缀斜杠
RewriteRule ^(.*)$ /search.php?s=$1
成为
RewriteRule ^(.*)$ search.php?s=$1