我尝试通过.htaccess制定特定的重写规则,但我需要帮助,它不起作用。
这是我的网址:
的 http://mywebsite.net/aaa-bbbb/cccc
aaa =动态参数([a-z])
bbb =动态参数([a-z])
cccc =动态参数但是optionnal([a-z])
我想要重写用户这个网址:
http://mywebsite.net/mydir/ccc?x=aaa&y=bbbb **
url仍然会在标签栏上显示http://mywebsite.net/aaa-bbbb/cccc
我试试这个 RewriteRule ^([a-z] +) - ([a-z] +)/([a-z] +)$ mydir / $ 3 [L]
但它不起作用
thx!
答案 0 :(得分:0)
将请求重写为
http://mywebsite.net/aaa-bbbb/cccc
内部到
/mydir/ccc?x=aaa&y=bbbb
你需要这样一个重写规则:
RewriteEngine on
RewriteRule ^([a-z]+)-([a-z]+)/([a-z]+)$ /mydir/$3?x=$1&y=$2 [L]
注意:上述规则具有在http服务器主机配置中使用的语法。如果您确实想要使用.htaccess
样式文件,则需要使用稍微修改过的语法,因为这些文件适用于 relative 路径:
RewriteEngine on
RewriteRule ^([a-z]+)-([a-z]+)/([a-z]+)$ mydir/$3?x=$1&y=$2 [L]
您可以在重写目标中发现缺少的/
。 .htaccess
样式文件必须驻留在包含mydir
文件夹的文件夹中才能生效。此外,必须在http服务器配置中启用对此类文件的解释。
一般说明:.htaccess
样式文件非常容易出错,难以调试,而且真的会使http服务器无效。它们仅作为不访问http服务器主机配置的最后一个选项提供。例如,对于作弊共享主机提供商。通常,总是更喜欢将此类规则放在主机配置中。