我很难过。 HTACCESS是我讨厌的东西,我正在努力做到这一点。我有一台运行Linux的服务器,我认为是Debian。好吧,就是这样:
有人应该解释一下,因为我是这个HTACCESS领域的新手。
我的动态网址:mydomain.com/index.php?Page=1&txtKeyword=
我需要对此进行美化:mydomain.com/index/Page/1/txtKeyword//
我的.htaccess是:
Options +FollowSymLinks
RewriteEngine on
RewriteRule index/Page/(.*)/txtKeyword/(.*)/ index.php?Page=$1&txtKeyword=$2
RewriteRule index/Page/(.*)/txtKeyword/(.*) index.php?Page=$1&txtKeyword=$2
我这样做了,什么也没发生。
我的PHP文件中还有什么需要添加的吗?或者只将上面的代码添加到.htaccess就足够了(???)我的url重写???
如果仅在.htaccess中添加并且没有任何内容可以添加到php文件中,为什么这不起作用???
感谢您的大力帮助。
答案 0 :(得分:0)
我打算在这里走出去,猜猜你可能已经开启了Multiviews。在某些设置中,默认情况下会启用此选项,因为它有助于将请求与内容匹配。如果你确定你已经打开mod_rewrite并且你能够在htaccess文件中使用mod_rewrite(我需要FileInfo
选项),那么你可以尝试关闭Multiviews。
启用多视图后,apache会看到/index/
之类的请求,并看到有一个名为index.php
的文件,并将请求直接模糊映射到index.php
。因为这发生在mod_rewrite有机会做到这一点之前,这最终会绕过规则。在htaccess文件的顶部,尝试添加:
Options -Multiviews
另请注意,该规则需要mydomain.com/index/Page/1/txtKeyword/
,并在内部将其转换为mydomain.com/index.php?Page=1&txtKeyword=
。所以它希望您的所有链接看起来都像/index/Page/....
这些规则将不神奇地更改您网址地址栏中的内容。