.htaccess文件在Ubuntu服务器上被忽略

.htaccess文件在Ubuntu服务器上被忽略,.htaccess,ubuntu,.htaccess,Ubuntu,我最近为我的网站移动到了一个新的服务器,我成功地激活了mod_rewrite,但是一些文件仍然不工作 像这个: RewriteRule ^activate\/(.*)\/(.*)$ activate.php?Email=$1&hash=$2 我已经在我的VPS(Ubuntu)上做了所有必要的更改 有什么想法吗 像这样的线条效果很好: RewriteRule ^search\/(.*)\/([a-zA-Z0-9_-]+)$ search.php?view=$1&p=$2 Re

我最近为我的网站移动到了一个新的服务器,我成功地激活了mod_rewrite,但是一些文件仍然不工作

像这个:

RewriteRule ^activate\/(.*)\/(.*)$  activate.php?Email=$1&hash=$2
我已经在我的VPS(Ubuntu)上做了所有必要的更改

有什么想法吗

像这样的线条效果很好:

RewriteRule ^search\/(.*)\/([a-zA-Z0-9_-]+)$  search.php?view=$1&p=$2
RewriteRule ^search$  searchResults.php
RewriteRule ^term$  term.php
RewriteRule ^faq$  faq.php
# Non-working line...
RewriteRule ^activate\/(.*)\/(.*)$  activate.php?Email=$1&hash=$2

请注意,mod_rewrite已启用,所有其他行都可以正常工作,只有这一行

首先,您必须定义一个
RewriteBase
,因为您有两条规则(第一条和最后一条)创建两个虚拟目录

然后,您应该禁用
MultiViews
选项,使
term
faq
规则正常工作

最后,您可以用一种更通用的方式(或者至少用一种更好、更精确的方式)重写您的模式。另外,不要忘记每个规则之后的
L
标志(
[L]
),否则mod_rewrite将继续评估下一个规则

您可以用此代码替换htaccess中的当前代码(假设您的htaccess位于根文件夹中)


还有哪些线路工作正常?请始终发布.htaccess的全部内容,因为它高度依赖于顺序。
不工作
能否更明确一些?请编辑以上内容,以正确的顺序包含所有重写规则,并发布用于测试的特定示例URL(工作和非工作)确定,您添加了一些-但请将非工作行放在其他行的正确上下文中。(它是在中间之前、之后吗?)。我们需要与其他人一起查看。我重新排序:)请检查:)我爱你,你解决了我的问题:)在我的情况下,我有
选项+FollowSymLinks
首先,我将其修改为
选项-多视图
并解决了:)但会采纳你的建议并对其进行重大更改:)谢谢你。。。
Options -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^search/([^/]+)/([^/]+)$ search.php?view=$1&p=$2 [L]
RewriteRule ^search$ searchResults.php [L]
RewriteRule ^term$ term.php [L]
RewriteRule ^faq$ faq.php [L]
RewriteRule ^activate/([^/]+)/([^/]+)$ activate.php?Email=$1&hash=$2 [L]