如何使用mod_rewrite进行基本的URL重写

时间:2016-07-15 18:58:58

标签: php html apache .htaccess web

我不明白为什么,但是当我使用它时:

#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

1 个答案:

答案 0 :(得分:1)

您的第二条规则将导致无限循环,因为目标URI path="" # could set to any absolute path declare -a array=( "${path}"/* ) 也匹配/index.php?r=somewhat。最终导致500内部服务器错误。

要解决此问题,您需要避免使用.*重写文件和目录,如下所示:

RewriteCond