使用.htaccess修改URL

使用.htaccess修改URL,.htaccess,url-rewriting,drupal-7,.htaccess,Url Rewriting,Drupal 7,我正在尝试在我的一个drupal项目中构建推荐url 所以这些url将由站点上的不同用户共享 其他用户将通过共享链接访问该站点 因此,如果一个节点在 node/1 with path alias as content/test 这将作为共享 content/test/referral/1 但上述共享url将导致找不到页面 那么,有没有一种方法可以让我们将url共享为 content/test/referral/1 但当drupal收到请求时 它内部视为 content/test?refe

我正在尝试在我的一个drupal项目中构建推荐url 所以这些url将由站点上的不同用户共享 其他用户将通过共享链接访问该站点 因此,如果一个节点在

node/1 with path alias as content/test
这将作为共享

content/test/referral/1
但上述共享url将导致找不到页面 那么,有没有一种方法可以让我们将url共享为

content/test/referral/1 
但当drupal收到请求时 它内部视为

content/test?referral=1

这样就不会导致找不到页面。

您需要将
内容/测试/引用/1
内部重写为
内容/测试?refferal=1
。确保为Apache服务器启用了
mod_rewrite
,然后将以下规则添加到
.htaccess

RewriteRule ^content/test/referral/([0-9]+)/?$ /content/test?referral=$1 [L]

谢谢你的回答。我尝试将此代码放在.htaccess文件中,并尝试访问页面内容/test/reference/1在内容/test?reference=1工作时找不到页面。是的,已启用mod_rewrite。您的
.htaccess
文件是否在您的www根目录中?我对Drupal了解不多,但它是访问php
$\u GET
变量还是对访问的实际url(一些奇特的
$\u服务器
元素)做了一些奇特的事情?它在Drupal根目录中,从Drupal的角度来看,它应该在那里,是的,它被apache选中。