我目前在我的htaccess中有这一行:
RewriteRule ^/events/([^/\.]+)/?$/ /events.php?eventdate=$1 [NC,L]
我有一个php页面events.php,它是拉动态日期并生成内容。当人们去/ events / 04-26-2013 /例如我希望它来自events.php?eventdate = 04-26-2013
我在这里出错的任何想法?当我尝试加载目录时,它当前给了我404.
答案 0 :(得分:2)
我相信你的问题在于你的第一次斜线。
这应该有用。
RewriteRule ^events/([^/\.]+)/?$ /events.php?eventdate=$1 [NC,L]
答案 1 :(得分:0)
根据RewriteRule Directive的mod_rewrite manual部分:
在VirtualHost上下文中,最初将匹配模式 主机名和端口之后以及查询之前的URL部分 字符串(例如“/app1/index.html”)。
在Directory和htaccess上下文中,Pattern最初会是 删除前缀后,与文件系统路径匹配 将服务器引导到当前的RewriteRule (例如“app1 / index.html”或“index.html”取决于哪里 指令已定义。)
如果你想与之匹敌 主机名,端口或查询字符串,使用RewriteCond %{HTTP_HOST},%{SERVER_PORT}或%{QUERY_STRING}个变量 分别
除非有充分的理由从/ EVENTS /,/ Events /,& / events /您不需要[NC] No Case
声明。因此,对于.htaccess,规则如下所示:
RewriteRule ^events/([^/\.]+)/?$ events.php?eventdate=$1 [L]
在VirtualHost上下文中,它看起来像这样:
RewriteRule ^/events/([^/\.]+)/?$ /events.php?eventdate=$1