Apache 将规则重写为带问号的URL

Apache 将规则重写为带问号的URL,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,这就是我想做的 重定向自 example.com/directory 到 我有一个.htaccess,我知道它正在被读取,但我无法让它工作 RewriteEngine On RewriteRule ^directory/?$ /\?offer=1234 [NC] 这根本不会重定向,并将您保留在/directory中。我知道正在读取.htaccess文件,因为如果我故意弄乱语法,我会得到500个错误。我找到了一个简单但不优雅的方法来解决这个问题: RewriteRule ^dire

这就是我想做的

重定向自

example.com/directory

我有一个.htaccess,我知道它正在被读取,但我无法让它工作

RewriteEngine On
RewriteRule   ^directory/?$   /\?offer=1234   [NC]

这根本不会重定向,并将您保留在/directory中。我知道正在读取.htaccess文件,因为如果我故意弄乱语法,我会得到500个错误。

我找到了一个简单但不优雅的方法来解决这个问题:

RewriteRule ^directory/?$ http://example.com/?offer=1234

写出整个URL并不理想,但它确实起到了作用

尝试不使用\:重写规则^directory/?$/?offer=1234[NC]@croies最初尝试过,但没有成功。找到了一个简单的解决方案,虽然不那么漂亮,但却很管用。重写规则^directory/?$http://example.com/?offer=1234it 应该使用真实的文件名:RewriteRule^ directory/?$index.php?offer=1234[NC]或其他它认为您应该能够执行的操作:RewriteRule^ directory/?$http://%{http\u HOST}/?offer=1234以避免添加完整的主机名。
RewriteRule ^directory/?$ http://example.com/?offer=1234