2013-01-08 43 views
0

我知道这是一个问了很多问题,我已经看到他们都尝试这么多不同的变化,但它不会工作,我不知道我做错了什么。 很久以前,我创建了一个.htaccess文件,以便它指向我的404错误页面,这对我来说已经很好了,但是现在我想重写我的网站上的网址,因为有很多帖子,凌乱的URL中的所有变量。 我有一个名为viewpost.php网页,其中被传递1个变量(还有其它页面藏汉但这是例子)viewpost被传递1个变量,使其成为/viewpost.php?ID=10重写动态URLs不工作(htaccess)

RewriteEngine on 
RewriteRule viewpost-ID-(.*)\.htm$ viewpost.php?ID=$1 

我将这两行添加到htaccess文件中。我试图删除404代码形式的文件并保存它,但它并没有使它的工作。除了将此代码添加到.htaccess文件之外,还有什么其他需要做的吗? 该网站目前正在托管在atspace

Hosting OS Proprietary *nix 
Perl version 5.8.4 
MySQL version 5.1 
Perl path /usr/bin/perl 
Sendmail path /usr/local/bin/sendmail 
CGI-BIN path not required (You can run CGI, Perl scripts from any domain/subdomain folder) 
Perl Modules 2900+ installed modules (Click here to view the full list) 
PHP Version 5.2.17 Change 
PHP.INI Edit 
PHP Info [View PHP5.2.17 Info] [View PHP5.3.6 Info] 
Directory Protection  Enabled 

这是什么托管设置页面上写的。即时通讯不知道需要什么才能重写一个网址,但自从.htaccess文件目前正在为我的404页面工作,即时通讯假设其设置正常?

+0

'viewpost.php获得通过1变量'¿在哪里,如何?显示至少包含变量的传入URL的示例。 –

回答

1

也许.htaccess文件中的某些其他规则正在覆盖您的规则,或者您可能遇到了区分大小写的问题。在RewriteRule行的末尾添加[NC,QSA,L]

RewriteEngine On 
RewriteRule viewpost-ID-(.*)\.htm /viewpost.php?ID=$1 [NC,QSA,L] 

NC忽略的情况下,QSA任何额外的查询字符串参数追加到目标URL和L告诉Apache停止,如果这是当前URL匹配处理更多RewriteRule条目。

+0

我试过,但没有运气。该文件中唯一的其他东西是404代码,我删除了那里那些2行以上是我现在添加到文件 – user1889580

+0

@ user1889580它是否是一个区分大小写的问题? –

+0

不,我再次检查,但他们匹配很好 – user1889580