我正在尝试美化一个url,让它从一个丑陋的东西变成:
www.domain.com/lookup.php?firstname=jack&middlename=ron&lastname=paul至
www.domain.com/n/jack/ron/paul我在服务器上有一些其他的重写工作,但这个重写似乎不喜欢我,因为我得到了404。这是我正在尝试的:
RewriteRule ^/n/(.*)/(.*)/(.*)$ lookup.php?firstname=$1&middlename=$2&lastname=$3我遗漏了什么?为什么这不起作用呢?
像这样更简单的代码可以很好地工作:
RewriteRule ^article/(.*)$ articles.php?article_id=$1还需要做什么才能做更复杂的事情?
发布于 2013-03-01 06:07:22
这不起作用,因为您在htaccess文件中有规则。当重写规则在htaccess文件中处理URI时,前导斜杠(或“前缀”)总是被去掉。这意味着:
# here-------v
RewriteRule ^/n/(.*)/(.*)/(.*)$ lookup.php?firstname=$1&middlename=$2&lastname=$3模式中的前导斜杠导致它永远不匹配,因为htaccess文件中的所有URI都将其去掉。重写htaccess文件中的规则本质上类似于<Directory>容器中的规则。试着去掉那个斜杠。
发布于 2013-03-01 04:02:02
我将不得不看到更多的httpd配置,但这里有一些注意事项:
https://stackoverflow.com/questions/15144417
复制相似问题