正如我之前的问题可能已经向您展示的那样,我对 modrewrite 不是很好。我试图搜索并为这个特定问题提出空缺。我希望有人可以帮助我解决这个问题;
我使用 modrewrite 作为短 URL 生成器的一部分,直接访问唯一 ID 会将它们转发到它们的目的地。在末尾添加 /v 将允许门户页面显示它们被转发到的 URL(如预览页面)
因为 /v 在 ID 之后,所以它工作得很好,但是我想允许通过$_GET添加新页面
这是提供给用户的快捷链接;
javascript:void(location.href='http://www.website.com/n/?url='+location.href)
这是 .htaccess 的内容
RewriteEngine On
RewriteRule ^n actions.php?do=new [NS,L,NC]
RewriteRule ^([a-zA-Z0-9]+)$ actions.php?id=$1 [NC]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ actions.php?id=$1&do=$2 [NC]
问题: 因为/n代替了 ID,它显然是冲突的。我尝试过 NS 和 L,因为它们能够在规则匹配后停止执行。经过进一步检查,它们当然不会像我想要的那样工作。
最后,这里有一些示例说明 URL 在最终产品中的外观;
New Submission:
http://www.web.com/n/?url=http://www.google.com [Outputs new URL as 12345]
Visit the ID directly:
http://www.web.com/1A2b34D5 [Forwards to URL Destination]
Visit the ID Preview Link:
http://www.web.com/1A2b34D5/v [Displays preview, Delayed Forwarder]