我不明白为什么,但是当我使用它时:
#RewriteRule ^/?r/(.*)$ /index.php?n=$1 [L]
将mysite.com/r/somewhat
重写为mysite.com/index.php?r=somewhat
网站的工作。
但如果我使用它:
#RewriteRule ^/?(.*)$ /index.php?name=$1 [L]
将mysite.com/somewhat
重写为mysite.com/index.php?r=somewhat
,
我的网站停止工作。
我不明白为什么。有人可以帮帮我吗?
如何将mysite.com/somewhat
重写为mysite.com/index.php?r=somewhat
?
答案 0 :(得分:1)
您的第二条规则将导致无限循环,因为目标URI path="" # could set to any absolute path
declare -a array=( "${path}"/* )
也匹配/index.php?r=somewhat
。最终导致500内部服务器错误。
要解决此问题,您需要避免使用.*
重写文件和目录,如下所示:
RewriteCond