.htaccess 基本模块重写问题
我试图写一条规则,上面写着 xyz.com/hotels\u in\u someplace将直接指向xyz.com/test.php?place=someplace 在我的htaccess中使用以下命令.htaccess 基本模块重写问题,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我试图写一条规则,上面写着 xyz.com/hotels\u in\u someplace将直接指向xyz.com/test.php?place=someplace 在我的htaccess中使用以下命令 RewriteEngine On RewriteBase / RewriteRule ^hotels_in_([a-z]+)$ test.php?place=$1 [L] 但它不起作用,我也不明白为什么,我正在以开发人员的身份运行一个wamp服务器。当我试图运行xyz.com/test.ph
RewriteEngine On
RewriteBase /
RewriteRule ^hotels_in_([a-z]+)$ test.php?place=$1 [L]
但它不起作用,我也不明白为什么,我正在以开发人员的身份运行一个wamp服务器。当我试图运行xyz.com/test.php?place=someplace(目录中没有htaccess)时,它可以工作,但我怀疑我的规则出了问题
其他:
哎哟……我愚蠢的错误,mod_rewrite没有启用…更新:我之前没有注意到问题中的RewriteBase,所以我关于前导斜杠的观点是空的。不过,重写规则在我的机器上确实有效
尝试: test.php的路径需要前导斜杠。您执行重写的方式将被重定向到xyz.com/path/to/web/docs/on/machine/test.php,而这不是您想要的。:) 另外,如果您正在测试,则在测试中包含尾部斜杠 上述规则与xyz.com/hotels\u in\u someplace/不匹配 要匹配前导斜杠,应执行以下操作:
RewriteRule ^hotels_in_([a-z]+)/?$ /test.php?place=$1 [L]
尝试不使用端点定位($)
另外,您是否允许解析.htaccess文件?您的示例对我来说很好。可能需要做一些小的调整(参见我的示例,它捕获了大写字母、连字符和下划线(适用于包含多个单词(美国、美国)的国家/地区的酒店)和尾随的正斜杠)
希望这能有所帮助。它到底是如何工作的?您真的有“RewriteEngine On RewriteBase/”这一行吗?我已经在我的服务器上测试过了,它工作正常。您是否尝试过类似于
RewriteRule^的简单规则http://example.com/ [L,R]
?
RewriteRule ^hotels_in_([a-z]+)/?$ /test.php?place=$1 [L]
RewriteRule ^/hotels_in_([a-z]+) /test.php?place=$1 [L]
RewriteRule ^hotels_in_([A-Za-z_-]*)(/?)$ /test.php?place=$1