Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用.htaccess样式URL目录样式_.htaccess - Fatal编程技术网

使用.htaccess样式URL目录样式

使用.htaccess样式URL目录样式,.htaccess,.htaccess,我搜索了这个问题,环顾四周,但似乎无法在实践中实现这一点。这是我的.htaccess文件: Options +FollowSymLinks RewriteEngine on RewriteRule /poker/(.*)/(.*)/$ /poker/?$1=$2 我正试图让我的页面像这样工作: mysite.com/poker/page/home 但这根本不起作用,我使用了3个不同的生成器,并尝试从教程中手动键入,但它只是返回了404。任何想法都是非常值得赞赏的,它可能是非常明显的 谢谢,您

我搜索了这个问题,环顾四周,但似乎无法在实践中实现这一点。这是我的.htaccess文件:

Options +FollowSymLinks
RewriteEngine on
RewriteRule /poker/(.*)/(.*)/$ /poker/?$1=$2
我正试图让我的页面像这样工作:

mysite.com/poker/page/home
但这根本不起作用,我使用了3个不同的生成器,并尝试从教程中手动键入,但它只是返回了404。任何想法都是非常值得赞赏的,它可能是非常明显的


谢谢,您的示例中没有尾随斜杠,但您的规则需要一个。可以将尾部斜杠设置为可选:

RewriteEngine on
RewriteRule /poker/(.*)/(.*)/?$ /poker/?$1=$2
RewriteRule ^poker/(.+)/(.+)/?$ /poker/?$1=$2

但是请注意,uri
/poker/a/b/c/d/e/f/g/
在这里也是匹配的-
a/b/c/d/e/f
将匹配第一个子模式,
g
将匹配第二个子模式,因为
(.*)
是贪婪的。如果您希望只在斜杠之间匹配内容,请更加具体—例如,
([^/]*)

如果
http://mysite.com/poker/?page=home
正确解析。唯一的一点是,如果这是在htaccess文件中,则当在
重写规则
中匹配时,会从URI中删除前导斜杠,因此您需要将其从正则表达式中删除(或者将其设为可选):


也许可以改为分组
(.+)
,这样至少有一个字符。

谢谢你的回答!我已经试过了,但仍然不起作用,开始怀疑是否有服务器问题。。如果有可能的话,有人能帮忙吗?所以当你输入
http://mysite.com/poker/?page=home
在您的浏览器中,可以使用吗?重写规则^poker/(.+)/(.+)/poker/?$1=$2-我决定尝试不使用尾部斜杠和(++)但仍然不起作用。太让人困惑了,因为我看的每一个地方似乎都应该这样做。所以我仍然相信一定有一个地方不允许这样做。如果有帮助,我可以完全访问服务器。