我目前正在使用.htaccess从
重写我的网址 example.com/mixtape.php?id=(WHATEVER#)
...到...
example.com/m/(WHATEVER#)
我用来完成的代码如下:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m\/([^/\.]+)/?$ mixtape.php?mixid=$1 [L]
我想要实现的下一件事就是改写我的
example.com/edit-mixtape.php?id=(WHATEVER#)
...到...
example.com/m/(WHATEVER#)/ edit
那里有没有人可以帮我成功写一个正确的重写mod?
答案 0 :(得分:2)
根据您的评论,我也会更改您的原始规则,仅允许使用数字:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m/(\d+)/edit/?$ edit-mixtape.php?mixid=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m/(\d+)/?$ mixtape.php?mixid=$1 [L]
顺便说一句,我可能会使用一般规则并将两个url写入同一个php文件并处理控制器中的操作。
答案 1 :(得分:1)
您可以使用之前的规则,但只需将edit
附加到正则表达式:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m\/([^/\.]+)/edit/?$ edit-mixtape.php?mixid=$1 [L]
请注意,您的原始规则包含查询字符串mixid=
,而您的示例说明id=
。